Home | History | Annotate | Download | only in win32
      1 # NMake Makefile portion for compilation rules
      2 # Items in here should not need to be edited unless
      3 # one is maintaining the NMake build files.  The format
      4 # of NMake Makefiles here are different from the GNU
      5 # Makefiles.  Please see the comments about these formats.
      6 
      7 # Inference rules for compiling the .obj files.
      8 # Used for libs and programs with more than a single source file.
      9 # Format is as follows
     10 # (all dirs must have a trailing '\'):
     11 #
     12 # {$(srcdir)}.$(srcext){$(destdir)}.obj::
     13 # 	$(CC)|$(CXX) $(cflags) /Fo$(destdir) /c @<<
     14 # $<
     15 # <<
     16 {..\src\}.cc{$(CFG)\$(PLAT)\harfbuzz\}.obj::
     17 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_LIB_CFLAGS) /Fo$(CFG)\$(PLAT)\harfbuzz\ /c @<<
     18 $<
     19 <<
     20 
     21 {..\src\hb-ucdn\}.c{$(CFG)\$(PLAT)\harfbuzz\}.obj::
     22 	$(CC) $(CFLAGS) /Fo$(CFG)\$(PLAT)\harfbuzz\ /c @<<
     23 $<
     24 <<
     25 
     26 {..\src\}.cc{$(CFG)\$(PLAT)\harfbuzz-icu\}.obj::
     27 	$(CXX) $(CFLAGS) $(HB_LIB_CFLAGS) $(HB_ICU_CFLAGS) /Fo$(CFG)\$(PLAT)\harfbuzz-icu\ /c @<<
     28 $<
     29 <<
     30 
     31 {..\util\}.cc{$(CFG)\$(PLAT)\util\}.obj::
     32 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_CFLAGS) /Fo$(CFG)\$(PLAT)\util\ /c @<<
     33 $<
     34 <<
     35 
     36 # Inference rules for building the test programs
     37 # Used for programs with a single source file.
     38 # Format is as follows
     39 # (all dirs must have a trailing '\'):
     40 #
     41 # {$(srcdir)}.$(srcext){$(destdir)}.exe::
     42 # 	$(CC)|$(CXX) $(cflags) $< /Fo$*.obj  /Fe$@ [/link $(linker_flags) $(dep_libs)]
     43 {..\src\}.cc{$(CFG)\$(PLAT)\}.exe:
     44 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_CFLAGS) $< /Fo$*.obj  /Fe$@ /link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_TESTS_DEP_LIBS)
     45 
     46 {..\test\api\}.c{$(CFG)\$(PLAT)\}.exe:
     47 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_CFLAGS) /DSRCDIR="\"../../../test/api\"" $< /Fo$*.obj /Fe$@ /link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_TESTS_DEP_LIBS)
     48 
     49 # Rules for building .lib files
     50 $(CFG)\$(PLAT)\harfbuzz.lib: $(HARFBUZZ_DLL_FILENAME).dll
     51 $(CFG)\$(PLAT)\harfbuzz-icu.lib: $(HARFBUZZ_ICU_DLL_FILENAME).dll
     52 $(CFG)\$(PLAT)\harfbuzz-gobject.lib: $(HARFBUZZ_GOBJECT_DLL_FILENAME).dll
     53 
     54 # Rules for linking DLLs
     55 # Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
     56 # $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
     57 #	link /DLL [$(linker_flags)] [$(dependent_libs)] [/def:$(def_file_if_used)] [/implib:$(lib_name_if_needed)] -out:$@ @<<
     58 # $(dependent_objects)
     59 # <<
     60 # 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
     61 $(HARFBUZZ_DLL_FILENAME).dll: config.h $(harfbuzz_dll_OBJS) $(CFG)\$(PLAT)\harfbuzz
     62 	link /DLL $(LDFLAGS) $(HB_DEP_LIBS) /implib:$(CFG)\$(PLAT)\harfbuzz.lib -out:$@ @<<
     63 $(harfbuzz_dll_OBJS)
     64 <<
     65 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
     66 
     67 $(HARFBUZZ_ICU_DLL_FILENAME).dll: $(CFG)\$(PLAT)\harfbuzz.lib $(harfbuzz_icu_OBJS) $(CFG)\$(PLAT)\harfbuzz-icu
     68 	link /DLL $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_ICU_DEP_LIBS) /implib:$(CFG)\$(PLAT)\harfbuzz-icu.lib -out:$@ @<<
     69 $(harfbuzz_icu_OBJS)
     70 <<
     71 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
     72 
     73 $(HARFBUZZ_GOBJECT_DLL_FILENAME).dll: $(CFG)\$(PLAT)\harfbuzz.lib $(harfbuzz_gobject_OBJS) $(CFG)\$(PLAT)\harfbuzz-gobject
     74 	link /DLL $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_GOBJECT_DEP_LIBS) /implib:$(CFG)\$(PLAT)\harfbuzz-gobject.lib -out:$@ @<<
     75 $(harfbuzz_gobject_OBJS)
     76 <<
     77 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;2
     78 
     79 # Rules for linking Executables
     80 # Format is as follows (the mt command is needed for MSVC 2005/2008 builds):
     81 # $(dll_name_with_path): $(dependent_libs_files_objects_and_items)
     82 #	link [$(linker_flags)] [$(dependent_libs)] -out:$@ @<<
     83 # $(dependent_objects)
     84 # <<
     85 # 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
     86 $(CFG)\$(PLAT)\hb-view.exe: $(CFG)\$(PLAT)\harfbuzz.lib $(CFG)\$(PLAT)\util $(hb_view_OBJS)
     87 	link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_UTILS_DEP_LIBS) -out:$@ @<<
     88 $(hb_view_OBJS)
     89 <<
     90 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
     91 
     92 $(CFG)\$(PLAT)\hb-shape.exe: $(CFG)\$(PLAT)\harfbuzz.lib $(CFG)\$(PLAT)\util $(hb_shape_OBJS)
     93 	link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_UTILS_DEP_LIBS) -out:$@ @<<
     94 $(hb_shape_OBJS)
     95 <<
     96 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
     97 
     98 $(CFG)\$(PLAT)\hb-ot-shape-closure.exe: $(CFG)\$(PLAT)\harfbuzz.lib $(CFG)\$(PLAT)\util $(hb_ot_shape_closure_OBJS)
     99 	link $(LDFLAGS) $(CFG)\$(PLAT)\harfbuzz.lib $(HB_UTILS_DEP_LIBS) -out:$@ @<<
    100 $(hb_ot_shape_closure_OBJS)
    101 <<
    102 	@-if exist $@.manifest mt /manifest $@.manifest /outputresource:$@;1
    103 
    104 # Other .obj files requiring individual attention, that could not be covered by the inference rules.
    105 # Format is as follows (all dirs must have a trailing '\'):
    106 #
    107 # $(obj_file):
    108 # 	$(CC)|$(CXX) $(cflags) /Fo$(obj_destdir) /c @<<
    109 # $(srcfile)
    110 # <<
    111 $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-structs.obj:	$(CFG)\$(PLAT)\harfbuzz-gobject $(HB_GOBJECT_ENUM_GENERATED_SOURCES)
    112 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_LIB_CFLAGS) /I$(CFG)\$(PLAT)\harfbuzz-gobject /Fo$(CFG)\$(PLAT)\harfbuzz-gobject\ /c @<<
    113 ..\src\hb-gobject-structs.cc
    114 <<
    115 
    116 $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.obj: $(CFG)\$(PLAT)\harfbuzz-gobject $(HB_GOBJECT_ENUM_GENERATED_SOURCES)
    117 	$(CXX) $(CFLAGS) $(HB_DEFINES) $(HB_LIB_CFLAGS) /I$(CFG)\$(PLAT)\harfbuzz-gobject /Fo$(CFG)\$(PLAT)\harfbuzz-gobject\ /c @<<
    118 $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
    119 <<
    120 
    121 clean:
    122 	@-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib del /f /q $(CFG)\$(PLAT)\HarfBuzz-0.0.typelib
    123 	@-if exist $(CFG)\$(PLAT)\HarfBuzz-0.0.gir del /f /q $(CFG)\$(PLAT)\HarfBuzz-0.0.gir
    124 	@-if exist $(CFG)\$(PLAT)\hb_list del /f /q $(CFG)\$(PLAT)\hb_list
    125 	@-del /f /q $(CFG)\$(PLAT)\*.pdb
    126 	@-if exist $(CFG)\$(PLAT)\.exe.manifest del /f /q $(CFG)\$(PLAT)\*.exe.manifest
    127 	@-if exist $(CFG)\$(PLAT)\.exe del /f /q $(CFG)\$(PLAT)\*.exe
    128 	@-del /f /q $(CFG)\$(PLAT)\*.dll.manifest
    129 	@-del /f /q $(CFG)\$(PLAT)\*.dll
    130 	@-del /f /q $(CFG)\$(PLAT)\*.ilk
    131 	@-del /f /q $(CFG)\$(PLAT)\*.obj
    132 	@-if exist $(CFG)\$(PLAT)\util del /f /q $(CFG)\$(PLAT)\util\*.obj
    133 	@-if exist $(CFG)\$(PLAT)\harfbuzz-gobject del /f /q $(CFG)\$(PLAT)\harfbuzz-gobject\*.obj
    134 	@-if exist $(CFG)\$(PLAT)\harfbuzz-icu del /f /q $(CFG)\$(PLAT)\harfbuzz-icu\*.obj
    135 	@-del /f /q $(CFG)\$(PLAT)\harfbuzz\*.obj
    136 	@-rmdir /s /q $(CFG)\$(PLAT)
    137 	@-if exist $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h del $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.h
    138 	@-if exist $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc del $(CFG)\$(PLAT)\harfbuzz-gobject\hb-gobject-enums.cc
    139 	@-del vc$(VSVER)0.pdb
    140 	@-del config.h
    141