High-performance computing (HPC) applications have been specialized for their target systems to achieve high performances. Hence, their performances are not portable to other systems. This performance portability problem leads to higher costs for maintaining HPC applications, because the life of an HPC application is usually much longer than that of an HPC system. Therefore, an HPC application needs to be migrated to a new system. Compiler directives can ease such application migration with minor modification of the original code. However, existing compiler directives cannot always satisfy users' requirements. In some cases, customizing the compiler directives for application-specific code transformations is required in order to achieve a high performance as well as high performance portability by using different performance optimizations for individual systems. This paper proposes a mechanism that allows programmers to customize existing compiler directives. To describe the specification of the customized directives, such as directive names, clauses, and their arguments, this paper also presents an XML-based format for customizing directives. The evaluation results show that the proposed approach can customize OpenMP directives to generate multiple code versions that are executed in different ways. With auto-tuning techniques, it is expected that programmers can select the best code version.