Changeset 97 for trunk/libjdkmidi/trunk

Show
Ignore:
Timestamp:
09/01/06 15:21:45 (2 years ago)
Author:
jeffk@…
Message:

magic.mak updated to include gui programs with separate compiling/link flags and platform support. TOP_LIB_DIRS variable allows you to specify multiple directories that each have include and src dirs so you can merge multiple libraries into one makefile.

Location:
trunk/libjdkmidi/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/libjdkmidi/trunk/magic.mak

    r95 r97  
    1313 
    1414LIBS+= 
    15 LIB_DIRS+= 
    16 LIB_SRC_DIR=$(LIB_DIRS) 
     15LIB_DIRS+=$(foreach lib,$(TOP_LIB_DIRS),$(PROJECT_TOP_DIR)/$(lib)) 
     16LIB_SRC_DIR+=$(TOP_LIB_DIRS) 
    1717 
    1818RSYNC?=rsync 
     
    3636EXE=.exe 
    3737PLATFORM_DIRS+=win32 mingw32 
     38LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_MINGW32) 
     39LDLIBS_GUI+=$(LDLIBS_GUI_MINGW32) 
    3840LDLIBS+=$(LDLIBS_MINGW32) 
    3941DEFINES+=$(DEFINES_MINGW32) 
    4042COMPILE_FLAGS+=$(COMPILE_FLAGS_MINGW32) 
    4143LINK_FLAGS+=$(LINK_FLAGS_MINGW32) 
     44LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_MINGW32) $(TOP_LIB_DIRS_WIN32),$(PROJECT_TOP_DIR)/$(lib)) 
    4245endif 
    4346 
     
    4750EXE=.exe 
    4851PLATFORM_DIRS+=posix cygwin 
     52LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_CYGWIN) 
     53LDLIBS_GUI+=$(LDLIBS_GUI_CYGWIN) 
    4954LDLIBS+=$(LDLIBS_CYGWIN) 
    5055DEFINES+=$(DEFINES_CYGWIN) $(DEFINES_POSIX) 
    5156COMPILE_FLAGS+=$(COMPILE_FLAGS_CYGWIN) 
    5257LINK_FLAGS+=$(LINK_FLAGS_CYGWIN) $(LINK_FLAGS_POSIX) 
     58LIB_SRC_DIR+=$(foreach lib, $(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_CYGWIN),$(TOP_PROJECT_TOP_DIR)/$(lib)) 
    5359endif 
    5460 
     
    5763TARGET_PLATFORM_GENERIC=0 
    5864PLATFORM_DIRS+=posix 
     65LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_POSIX) 
     66LDLIBS_GUI+=$(LDLIBS_GUI_POSIX) 
    5967LDLIBS+=$(LDLIBS_POSIX) 
    6068DEFINES+=$(DEFINES_POSIX) 
    6169COMPILE_FLAGS+=$(COMPILE_FLAGS_POSIX) 
    6270LINK_FLAGS+=$(LINK_FLAGS_POSIX) 
     71LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX),$(TOP_PROJECT_TOP_DIR)/$(lib)) 
    6372endif 
    6473 
     
    6776TARGET_PLATFORM_GENERIC=0 
    6877PLATFORM_DIRS+=posix linux 
     78LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_LINUX) 
     79LDLIBS_GUI+=$(LDLIBS_GUI_LINUX) 
    6980LDLIBS+=$(LDLIBS_LINUX) 
    7081DEFINES+=$(DEFINES_LINUX) $(DEFINES_POSIX) 
    7182COMPILE_FLAGS+=$(COMPILE_FLAGS_LINUX) $(COMPILE_FLAGS_POSIX) 
    7283LINK_FLAGS+=$(LINK_FLAGS_LINUX) $(LINK_FLAGS_POSIX) 
     84LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_LINUX),$(PROJECT_TOP_DIR)/$(lib)) 
    7385endif 
    7486 
     
    8294MACOSX_LIBTOOL=libtool 
    8395MACOSX_LIBTOOLFLAGS?=-static 
     96LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_MACOSX) 
     97LDLIBS_GUI+=$(LDLIBS_GUI_MACOSX) 
    8498LDLIBS+=$(LDLIBS_MACOSX_PPC) $(LDLIBS_MACOSX) 
    8599DEFINES+=$(DEFINES_MACOSX_PPC) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
    86100COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_PPC) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    87101LINK_FLAGS+=$(LINK_FLAGS_MACOSX_PPC) $(LINK_FLAGS_POSIX) $(LINK_FLAGS_MACOSX) 
     102LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    88103endif 
    89104 
     
    97112MACOSX_LIBTOOL=libtool 
    98113MACOSX_LIBTOOLFLAGS?=-static 
     114LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_MACOSX) 
     115LDLIBS_GUI+=$(LDLIBS_GUI_MACOSX) 
    99116LDLIBS+=$(LDLIBS_MACOSX_I386) $(LDLIBS_MACOSX) 
    100117DEFINES+=$(DEFINES_MACOSX_I386) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
    101118COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_I386) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    102119LINK_FLAGS+=$(LINK_FLAGS_MACOSX_I386) $(LINK_FLAGS_POSIX) $(LINK_FLAGS_MACOSX) 
     120LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    103121endif 
    104122 
     
    117135MACOSX_LIBTOOL=libtool 
    118136MACOSX_LIBTOOLFLAGS?=-static 
     137LINK_FLAGS_GUI+=$(LINK_FLAGS_GUI_MACOSX) 
     138LDLIBS_GUI+=$(LDLIBS_GUI_MACOSX) 
    119139LDLIBS+=$(LDLIBS_MACOSX_UNIVERSAL) $(LDLIBS_MACOSX) 
    120140DEFINES+=$(DEFINES_MACOSX_UNIVERSAL) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
    121141COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_UNIVERSAL) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    122142LINK_FLAGS+=$(LINK_FLAGS_MACOSX_UNIVERSAL) $(LINK_FLAGS_POSIX) $(LINK_FLAGS_MACOSX) 
     143LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    123144endif 
    124145 
     
    156177NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_MINGW32) 
    157178NATIVE_LINK_FLAGS+=$(LINK_FLAGS_MINGW32) 
     179NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_MINGW32) $(TOP_LIB_DIRS_WIN32),$(PROJECT_TOP_DIR)/$(lib)) 
    158180endif 
    159181 
     
    167189NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_CYGWIN) $(COMPILE_FLAGS_POSIX) 
    168190NATIVE_LINK_FLAGS+=$(LINK_FLAGS_CYGWIN) $(LINK_FLAGS_POSIX) 
     191NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_CYGWIN),$(PROJECT_TOP_DIR)/$(lib)) 
    169192endif 
    170193 
     
    177200NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_POSIX) 
    178201NATIVE_LINK_FLAGS+=$(LINK_FLAGS_POSIX) 
     202NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX),$(PROJECT_TOP_DIR)/$(lib)) 
    179203endif 
    180204 
     
    187211NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_LINUX) $(COMPILE_FLAGS_POSIX) 
    188212NATIVE_LINK_FLAGS+=$(LINK_FLAGS_LINUX) $(LINK_FLAGS_POSIX) 
     213NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_LINUX),$(PROJECT_TOP_DIR)/$(lib)) 
    189214endif 
    190215 
     
    202227NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_PPC) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    203228NATIVE_LINK_FLAGS+=$(LINK_FLAGS_MACOSX_PPC) $(LINK_FLAGS_POSIX) 
     229NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    204230endif 
    205231 
     
    217243NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_I386) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    218244NATIVE_LINK_FLAGS+=$(LINK_FLAGS_MACOSX_I386) $(LINK_FLAGS_POSIX) 
     245NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    219246endif 
    220247 
     
    236263NATIVE_COMPILE_FLAGS+=$(COMPILE_FLAGS_MACOSX_UNIVERSAL) $(COMPILE_FLAGS_POSIX) $(COMPILE_FLAGS_MACOSX) 
    237264NATIVE_LINK_FLAGS+=$(LINK_FLAGS_MACOSX_UNIVERSAL) $(LINK_FLAGS_POSIX) 
     265NATIVE_LIB_SRC_DIR+=$(foreach lib,$(TOP_LIB_DIRS_POSIX) $(TOP_LIB_DIRS_MACOSX),$(PROJECT_TOP_DIR)/$(lib)) 
    238266endif 
    239267 
     
    250278 
    251279 
    252 NATIVE_LIB_SRC_DIR+=$(addsuffix /src,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /src/$(platform),$(LIB_DIRS))) 
    253 NATIVE_LIB_TESTS_DIR+=$(addsuffix /tests,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /tests/$(platform),$(LIB_DIRS))) 
    254 NATIVE_LIB_EXAMPLES_DIR+=$(addsuffix /examples,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /examples/$(platform),$(LIB_DIRS))) 
    255 NATIVE_LIB_TOOLS_DIR+=$(addsuffix /tools,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /tools/$(platform),$(LIB_DIRS))) 
    256  
    257  
    258 endif 
    259  
    260 LIB_INCLUDE_DIR+=$(addsuffix /include,$(LIB_DIRS)) 
    261 LIB_SRC_DIR+=$(addsuffix /src,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /src/$(platform),$(LIB_DIRS))) 
    262 LIB_TESTS_DIR+=$(addsuffix /tests,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /tests/$(platform),$(LIB_DIRS))) 
    263 LIB_EXAMPLES_DIR+=$(addsuffix /examples,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /examples/$(platform),$(LIB_DIRS))) 
    264 LIB_TOOLS_DIR+=$(addsuffix /tools,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /tools/$(platform),$(LIB_DIRS))) 
    265 LIB_DOCS_DIR+=$(addsuffix /docs,$(LIB_DIRS)) 
     280NATIVE_LIB_SRC_DIR+=$(foreach dir,$(addsuffix /src,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /src/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     281NATIVE_LIB_GUI_DIR+=$(foreach dir,$(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /gui/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     282NATIVE_LIB_TESTS_DIR+=$(foreach dir,$(addsuffix /tests,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /tests/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     283NATIVE_LIB_EXAMPLES_DIR+=$(foreach dir,$(addsuffix /examples,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /examples/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     284NATIVE_LIB_TOOLS_DIR+=$(foreach dir,$(addsuffix /tools,$(LIB_DIRS)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(addsuffix /tools/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     285 
     286 
     287endif 
     288 
     289LIB_INCLUDE_DIR+=$(foreach dir,$(addsuffix /include,$(LIB_DIRS)),$(wildcard $(dir))) 
     290LIB_SRC_DIR+=$(foreach dir,$(addsuffix /src,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /src/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     291LIB_TESTS_DIR+=$(foreach dir,$(addsuffix /tests,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /tests/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     292LIB_GUI_DIR+=$(foreach dir,$(foreach platform,$(PLATFORM_DIRS),$(addsuffix /gui/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     293LIB_EXAMPLES_DIR+=$(foreach dir,$(addsuffix /examples,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /examples/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     294LIB_TOOLS_DIR+=$(foreach dir,$(addsuffix /tools,$(LIB_DIRS)) $(foreach platform,$(PLATFORM_DIRS),$(addsuffix /tools/$(platform),$(LIB_DIRS))),$(wildcard $(dir))) 
     295LIB_DOCS_DIR+=$(foreach dir,$(addsuffix /docs,$(LIB_DIRS)),$(wildcard $(dir))) 
    266296 
    267297 
     
    272302OUTPUT_DOCS_DIR?=$(OUTPUT_DIR)/docs 
    273303OUTPUT_TOOLS_DIR?=$(OUTPUT_DIR)/tools 
     304OUTPUT_GUI_DIR?=$(OUTPUT_DIR)/gui 
    274305OUTPUT_EXAMPLES_DIR?=$(OUTPUT_DIR)/examples 
    275306OUTPUT_OBJ_DIR?=$(OUTPUT_DIR)/obj 
     
    288319endif 
    289320 
    290 ALL_OUTPUT_DIRS+=$(OUTPUT_LIB_DIR) $(OUTPUT_TOOLS_DIR) $(OUTPUT_TESTS_DIR) $(OUTPUT_DOCS_DIR) $(OUTPUT_EXAMPLES_DIR) $(OUTPUT_OBJ_DIR) 
     321ALL_OUTPUT_DIRS+=$(OUTPUT_LIB_DIR) $(OUTPUT_TOOLS_DIR) $(OUTPUT_TESTS_DIR) $(OUTPUT_DOCS_DIR) $(OUTPUT_EXAMPLES_DIR) $(OUTPUT_OBJ_DIR) $(OUTPUT_GUI_DIR) 
    291322 
    292323 
    293324# our paths 
    294325vpath %.o $(OUTPUT_OBJ_DIR) 
    295 vpath %.m $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) 
    296 vpath %.mm $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) 
    297 vpath %.cpp $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) 
    298 vpath %.c $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) 
     326vpath %.m $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) $(LIB_GUI_DIR) 
     327vpath %.mm $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) $(LIB_GUI_DIR) 
     328vpath %.cpp $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) $(LIB_GUI_DIR) 
     329vpath %.c $(LIB_SRC_DIR) $(LIB_TESTS_DIR) $(LIB_EXAMPLES_DIR) $(LIB_TOOLS_DIR) $(LIB_GUI_DIR) 
    299330vpath %.h .:$(LIB_INCLUDE_DIR) 
    300331vpath %.a $(OUTPUT_LIB_DIR) 
     
    333364$(OUTPUT_OBJ_DIR)/%.o $(OUTPUT_OBJ_DIR)/%.d : %.mm 
    334365   @echo "CXX mm : $(notdir $<)" 
    335    @$(CXX) $(PREPROCESS_FLAGS) $(MMFLAGS) -MM -MF $(OUTPUT_OBJ_DIR)/$*.d $< &&   @$(COMPILE.mm) $(PREPROCESS_FLAGS) $(COMPILE_FLAGS) -o $(OUTPUT_OBJ_DIR)/$*.o $< 
     366   @$(CXX) $(PREPROCESS_FLAGS) $(MMFLAGS) -MM -MF $(OUTPUT_OBJ_DIR)/$*.d $< &&   $(COMPILE.cpp) $(PREPROCESS_FLAGS) $(COMPILE_FLAGS) -o $(OUTPUT_OBJ_DIR)/$*.o $<  
    336367 
    337368$(OUTPUT_OBJ_DIR)/%.o $(OUTPUT_OBJ_DIR)/%.d : %.m 
    338369   @echo "CC  m  : $(notdir $<)" 
    339    @$(CC) $(PREPROCESS_FLAGS)  $(MFLAGS) -MM -MF $(OUTPUT_OBJ_DIR)/$*.d $< && @$(COMPILE.m) $(PREPROCESS_FLAGS) $(COMPILE_FLAGS) -o $(OUTPUT_OBJ_DIR)/$*.o $< 
     370   @$(CC) $(PREPROCESS_FLAGS)  $(MFLAGS) -MM -MF $(OUTPUT_OBJ_DIR)/$*.d $< && $(COMPILE.c) $(PREPROCESS_FLAGS) $(COMPILE_FLAGS) -o $(OUTPUT_OBJ_DIR)/$*.o $< 
    340371 
    341372$(OUTPUT_OBJ_DIR)/%.o $(OUTPUT_OBJ_DIR)/%.d : %.cpp 
     
    347378   @$(CC) $(PREPROCESS_FLAGS)  -MM -MF $(OUTPUT_OBJ_DIR)/$*.d $< && $(COMPILE.c) $(PREPROCESS_FLAGS) $(COMPILE_FLAGS) -o $(OUTPUT_OBJ_DIR)/$*.o $< 
    348379 
     380 
     381 
    349382ifeq ($(CROSS_COMPILING),1) 
    350383 
    351384$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.mm 
    352385   @echo "NATIVE_CXX mm : $(notdir $<)" 
    353    @$(NATIVE_CXX) $(NATIVE_PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && @$(NATIVE_COMPILE.mm) $(NATIVE_PREPROCESS_FLAGS) $(NATIVE_COMPILE_FLAGS) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     386   @$(NATIVE_CXX) $(NATIVE_PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && $(NATIVE_COMPILE.mm) $(NATIVE_PREPROCESS_FLAGS) $(NATIVE_COMPILE_FLAGS) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
    354387 
    355388$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.m 
    356389   @echo "NATIVE_CC  m  : $(notdir $<)" 
    357    @$(NATIVE_CC) $(NATIVE_PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && @$(NATIVE_COMPILE.m) $(NATIVE_PREPROCESS_FLAGS) $(NATIVE_COMPILE_FLAGS) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     390   @$(NATIVE_CC) $(NATIVE_PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && $(NATIVE_COMPILE.m) $(NATIVE_PREPROCESS_FLAGS) $(NATIVE_COMPILE_FLAGS) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
    358391 
    359392$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.cpp 
     
    366399endif 
    367400 
     401 
    368402$(OUTPUT_TOOLS_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
    369403   @echo "LINKING tool: $(notdir $<)" 
    370404   @$(LINK.cpp) $(LINK_FLAGS) $(LDFLAGS) -o $(OUTPUT_TOOLS_DIR)/$*$(EXE) $< -L$(OUTPUT_LIB_DIR) -l$(PROJECT) $(LDLIBS) 
     405 
     406 
     407$(OUTPUT_GUI_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
     408   @echo "LINKING gui: $(notdir $<)" 
     409   @$(LINK.cpp) $(LINK_FLAGS) $(LDFLAGS) $(LINK_FLAGS_GUI) -o $(OUTPUT_GUI_DIR)/$*$(EXE) $< -L$(OUTPUT_LIB_DIR) -l$(PROJECT) $(LDLIBS) $(LDLIBS_GUI) 
     410 
    371411 
    372412$(OUTPUT_EXAMPLES_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
     
    513553endif 
    514554 
     555# get the list of tool program source files from the ../gui directory 
     556LIB_GUI_CPP_FILES=$(notdir $(foreach dir,$(LIB_GUI_DIR),$(wildcard $(dir)/*.cpp)))  
     557LIB_GUI_C_FILES=$(notdir $(foreach dir,$(LIB_GUI_DIR),$(wildcard $(dir)/*.c)))  
     558LIB_GUI_M_FILES=$(notdir $(foreach dir,$(LIB_GUI_DIR),$(wildcard $(dir)/*.m)))  
     559LIB_GUI_MM_FILES=$(notdir $(foreach dir,$(LIB_GUI_DIR),$(wildcard $(dir)/*.mm)))  
     560LIB_GUI_O_FILES=$(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_GUI_CPP_FILES:.cpp=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_GUI_C_FILES:.c=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_GUI_M_FILES:.m=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_GUI_MM_FILES:.mm=.o)) 
     561LIB_GUI_EXE_FILES=$(addprefix $(OUTPUT_GUI_DIR)/,$(notdir $(LIB_GUI_O_FILES:.o=$(EXE)))) 
     562 
    515563 
    516564# manipulate these file lists to create our desired output files in the proper place 
     
    531579 
    532580ifeq ($(CROSS_COMPILING),1) 
    533 all : native-dirs dirs native-lib native-tools native-tests native-examples dirs lib tools tests examples  
     581all : native-dirs dirs native-lib native-tools native-tests native-examples dirs lib tools tests examples gui 
    534582else 
    535 all : dirs lib tools tests examples  
     583all : dirs lib tools tests examples gui 
    536584endif 
    537585 
     
    579627$(LIB_TESTS_EXE_FILES) : $(OUTPUT_LIB) 
    580628 
     629 
     630gui: lib $(LIB_GUI_EXE_FILES) 
     631 
     632$(LIB_GUI_EXE_FILES) : $(OUTPUT_LIB) 
     633 
    581634.PHONY : install 
    582635 
    583636install : lib tools tests examples  
    584637   @-$(MKDIR) -p $(INSTALL_BIN_DIR) 
    585    @for i in $(LIB_TOOLS_EXE_FILES); do echo "$${i}"; $(INSTALL) "$${i}" "$(INSTALL_BIN_DIR)"; done 
     638   @for i in $(LIB_TOOLS_EXE_FILES) $(LIB_GUI_EXE_FILES); do echo "$${i}"; $(INSTALL) "$${i}" "$(INSTALL_BIN_DIR)"; done 
    586639 
    587640.PHONY : install-dev 
     
    741794   @echo "LIB_TOOLS_DIR: $(LIB_TOOLS_DIR)" 
    742795   @echo "LIB_EXAMPLES_DIR: $(LIB_EXAMPLES_DIR)" 
     796   @echo "LIB_GUI_DIR: $(LIB_GUI_DIR)" 
    743797   @echo "LIB_CPP_FILES: $(LIB_CPP_FILES)" 
    744798   @echo "LIB_C_FILES: $(LIB_C_FILES)" 
     
    775829   @echo "lib : build library $(OUTPUT_LIB)" 
    776830   @echo "docs : build doxygen docs in $(PROJECT_TOP_DIR)/docs/html" 
    777    @echo "clean : clean intermediatte files" 
     831   @echo "clean : clean intermediate files" 
    778832   @echo "distclean / realclean : clean all built files (except docs)" 
    779833   @echo "tools : build tool programs $(LIB_TOOLS_EXE_FILES)" 
     
    792846endif 
    793847 
     848# read any custom mak files in the top dir of each library dir / project 
     849 
     850-include $(foreach dir,$(LIB_DIRS),$(dir)/$(dir).mak) 
     851 
    794852# include any dependencies created during the last make. 
    795853-include $(OUTPUT_OBJ_DIR)/*.d 
     
    800858 
    801859 
    802  
  • trunk/libjdkmidi/trunk/project.mak

    r85 r97  
    66PROJECT_LICENSE='GPL' 
    77 
    8 LIB_DIRS+=$(PROJECT_TOP_DIR) 
     8TOP_LIB_DIRS+=. 
    99 
    1010DEFINES_MINGW32+=