Changeset 80 for trunk/libjdkmidi/trunk

Show
Ignore:
Timestamp:
08/08/06 18:25:54 (2 years ago)
Author:
jeffk@…
Message:

more updates to magic.mak and configure script, now supports cross compiling and native compiling, when cross compiling native bins are built as well as typically some are needed for intermediate tools and tests. Still a work in progress, need to modify configure script to do auto detect

Location:
trunk/libjdkmidi/trunk
Files:
1 added
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/libjdkmidi/trunk/configure

    r79 r80  
    11#! /bin/bash 
    22 
    3 # package info 
     3relative_dir="$(dirname "$0")" 
    44 
    5 magic_PACKAGE_NAME=${PACKAGE_NAME:-pkg} 
    6 magic_PACKAGE_VERSION=-$(date +%Y%m%d) 
    7 magic_PACKAGE_STRING= 
    8 magic_PACKAGE_BUGREPORT= 
    9 magic_PACKAGE_TARNAME= 
     5# load project specific definitions 
     6 
     7source "${relative_dir}/project.sh" 
     8 
     9 
     10# parse all long options and set them as variables, allowing command line to override everything 
     11 
     12for i in "$@" 
     13do  
     14   p=$(echo "$i" | sed -E 's/^\-\-(.*)=(.*)/\1="\2"/') 
     15   eval $p 
     16done 
     17 
     18# setup all defaults: 
    1019 
    1120# directories 
    1221 
    13 relative_dir="$(dirname "$0")" 
    1422magic_PROJECT_TOP_DIR="${PWD}/${relative_dir}" 
    15 #magic_PREFIX="/usr/local" 
    16 magic_PREFIX=${PREFIX:-${PWD}/install} 
    17 magic_INSTALL_DIR=${magic_PREFIX} 
     23magic_PREFIX="${prefix:-${PWD}/install}" 
     24magic_INSTALL_DIR="${magic_PREFIX}" 
    1825 
    1926# additional tool specifications 
    20 magic_DOXYGEN=${DOXYGEN} 
    21 magic_CP=${CP:-cp} 
    22 magic_LN=${LN:-ln} 
    23 magic_RM=${RM:-rm} 
    24 magic_MKDIRS=${MKDIRS:-mkdir} 
    25 magic_MKDIR=${MKDIR:-mkdir} 
    26 magic_VALGRIND=${VALGRIND:-valgrind} 
    27 magic_VALGRIND_OPTIONS=${VALGRIND_OPTIONS} 
    28 magic_MAKEFLAGS=${MAKEFLAGS} 
    29 magic_INSTALL=${INSTALL:-install} 
     27magic_DOXYGEN="${doxygen}" 
     28magic_CP=${cp:-cp} 
     29magic_LN=${ln:-ln} 
     30magic_RM=${rm:-rm} 
     31magic_MKDIRS="${mkdirs:-mkdir}" 
     32magic_MKDIR="${mkdir:-mkdir}" 
     33magic_VALGRIND="${valgrind:-valgrind}" 
     34magic_VALGRIND_OPTIONS="${valgrind_options}" 
     35magic_MAKEFLAGS="${makeflags}" 
     36magic_INSTALL="${install:-install}" 
    3037 
    3138# Target platform definitions 
    3239 
    33 magic_TARGET_PLATFORM_GENERIC=${TARGET_PLATFORM_GENERIC} 
    34 magic_TARGET_PLATFORM_MINGW32=${TARGET_PLATFORM_MINGW32} 
    35 magic_TARGET_PLATFORM_CYGWIN=${TARGET_PLATFORM_CYGWIN} 
    36 magic_TARGET_PLATFORM_LINUX=${TARGET_PLATFORM_LINUX} 
    37 magic_TARGET_PLATFORM_MACOSX_PPC=${TARGET_PLATFORM_MACOSX_PPC} 
    38 magic_TARGET_PLATFORM_MACOSX_I386=${TARGET_PLATFORM_MACOSX_I386} 
    39 magic_TARGET_PLATFORM_MACOSX_UNIVERSAL=${TARGET_PLATFORM_MACOSX_UNIVERSAL} 
    40 magic_TARGET_USE_AR=${TARGET_USE_AR:-1} 
    41 magic_TARGET_USE_MACOSX_LIBTOOL=${TARGET_USE_MACOSX_LIBTOOL:-0} 
     40magic_TARGET_PLATFORM_GENERIC="${target_platform_generic}" 
     41magic_TARGET_PLATFORM_MINGW32="${target_platform_mingw32}" 
     42magic_TARGET_PLATFORM_CYGWIN="${target_platform_cygwin}" 
     43magic_TARGET_PLATFORM_LINUX="${target_platform_linux}" 
     44magic_TARGET_PLATFORM_MACOSX_PPC="${target_platform_macosx_ppc}" 
     45magic_TARGET_PLATFORM_MACOSX_I386="${target_platform_macosx_i386}" 
     46magic_TARGET_PLATFORM_MACOSX_UNIVERSAL="${target_platform_macosx_universal}" 
     47magic_TARGET_USE_AR="${target_use_ar:-1}" 
     48magic_TARGET_USE_MACOSX_LIBTOOL="${target_use_macosx_libtool:-0}" 
    4249 
    43 magic_TARGET_MACOSX_SDK=${TARGET_MACOSX_SDK:-/Developer/SDKs/MacOSX10.4u.sdk} 
     50magic_TARGET_MACOSX_SDK="${target_macosx_sdk:-/Developer/SDKs/MacOSX10.4u.sdk}" 
    4451 
    4552# Target compile options 
    4653 
    47 magic_DEBUG=${DEBUG} 
    48 magic_PROFILE=${PROFILE} 
    49 magic_OPTIMIZE=${OPTIMIZE} 
    50 magic_WARNINGS=${WARNINGS} 
    51 magic_AUTODEPEND=${AUTODEPEND} 
    52 magic_DEFINES=${DEFINES} 
     54magic_DEBUG="${debug}" 
     55magic_PROFILE="${profile}" 
     56magic_OPTIMIZE="${optimize}" 
     57magic_WARNINGS="${warnings}" 
     58magic_AUTODEPEND="${autodepend}" 
     59magic_DEFINES="${defines}" 
    5360 
    5461# Target compiler specifications 
    55 magic_CC=${CC:-${COMPILER_PREFIX}gcc} 
    56 magic_CXX=${CXX:-${COMPILER_PREFIX}g++} 
    57 magic_NM=${NM:-${COMPILER_PREFIX}nm} 
    58 magic_AR=${AR:-${COMPILER_PREFIX}ar} 
    59 magic_RANLIB=${RANLIB:-${COMPILER_PREFIX}ranlib} 
    60 magic_LD=${LD:-${COMPILER_PREFIX}g++} 
    61 magic_AS=${AS:-${COMPILER_PREFIX}as} 
    62 magic_STRIP=${STRIP:-${COMPILER_PREFIX}strip} 
    63 magic_STRINGS=${STRINGS:-${COMPILER_PREFIX}strings} 
    64 magic_WINDRES=${WINDRES:-${COMPILER_PREFIX}windres} 
    65 magic_OBJDUMP=${OBJDUMP:-${COMPILER_PREFIX}objdump} 
    66 magic_DLLTOOL=${DLLTOOL:-${COMPILER_PREFIX}dlltool} 
    67 magic_DLLWRAP=${DLLWRAP:-${COMPILER_PREFIX}dllwrap} 
    68 magic_LDFLAGS=${LDFLAGS} 
    69 magic_CXXFLAGS=${CXXFLAGS} 
    70 magic_CFLAGS=${CFLAGS} 
    71 magic_MFLAGS=${MFLAGS} 
    72 magic_MMFLAGS=${MMFLAGS} 
    73 magic_LDLIBS=${LDLIBS} 
     62magic_CC="${cc:-${compiler_prefix}gcc}" 
     63magic_CXX="${cxx:-${compiler_prefix}g++}" 
     64magic_NM="${nm:-${compiler_prefix}nm}" 
     65magic_AR="${ar:-${compiler_prefix}ar}" 
     66magic_RANLIB="${ranlib:-${compiler_prefix}ranlib}" 
     67magic_LD="${ld:-${compiler_prefix}ld}" 
     68magic_AS="${as:-${compiler_prefix}as}" 
     69magic_STRIP="${strip:-${compiler_prefix}strip}" 
     70magic_STRINGS="${strings:-${compiler_prefix}strings}" 
     71magic_WINDRES="${windres:-${compiler_prefix}windres}" 
     72magic_OBJDUMP="${objdump:-${compiler_prefix}objdump}" 
     73magic_DLLTOOL="${dlltool:-${compiler_prefix}dlltool}" 
     74magic_DLLWRAP="${dllwrap:-${compiler_prefix}dllwrap}" 
     75magic_LDFLAGS="${ldflags}" 
     76magic_CXXFLAGS="${cxxflags}" 
     77magic_CFLAGS="${cflags}" 
     78magic_MFLAGS="${mflags}" 
     79magic_MMFLAGS="${mmflags}" 
     80magic_LDLIBS="${ldlibs}" 
     81 
     82# Host platform specifications 
     83 
     84magic_HOST_PLATFORM_GENERIC="${host_platform_generic}" 
     85magic_HOST_PLATFORM_MINGW32="${host_platform_mingw32}" 
     86magic_HOST_PLATFORM_CYGWIN="${host_platform_cygwin}" 
     87magic_HOST_PLATFORM_LINUX="${host_platform_linux}" 
     88magic_HOST_PLATFORM_MACOSX_PPC="${host_platform_macosx_ppc}" 
     89magic_HOST_PLATFORM_MACOSX_I386="${host_platform_macosx_i386}" 
     90magic_HOST_PLATFORM_MACOSX_UNIVERSAL="${host_platform_macosx_universal}" 
     91magic_HOST_USE_AR="${host_use_ar:-1}" 
     92magic_HOST_USE_MACOSX_LIBTOOL="${host_use_macosx_libtool:-0}" 
     93magic_HOST_MACOSX_SDK="${host_macosx_sdk:-/Developer/SDKs/MacOSX10.4u.sdk}" 
    7494 
    7595# Native compiler specifications 
    7696 
    77 magic_NATIVE_CC=${CC:-${NATIVE_COMPILER_PREFIX}gcc} 
    78 magic_NATIVE_CXX=${CXX:-${NATIVE_COMPILER_PREFIX}g++} 
    79 magic_NATIVE_NM=${NM:-${NATIVE_COMPILER_PREFIX}nm} 
    80 magic_NATIVE_AR=${AR:-${NATIVE_COMPILER_PREFIX}ar} 
    81 magic_NATIVE_RANLIB=${RANLIB:-${NATIVE_COMPILER_PREFIX}ranlib} 
    82 magic_NATIVE_LD=${LD:-${NATIVE_COMPILER_PREFIX}g++} 
    83 magic_NATIVE_AS=${AS:-${NATIVE_COMPILER_PREFIX}as} 
    84 magic_NATIVE_STRIP=${STRIP:-${NATIVE_COMPILER_PREFIX}strip} 
    85 magic_NATIVE_STRINGS=${STRINGS:-${NATIVE_COMPILER_PREFIX}strings} 
    86 magic_NATIVE_WINDRES=${WINDRES:-${NATIVE_COMPILER_PREFIX}windres} 
    87 magic_NATIVE_OBJDUMP=${OBJDUMP:-${NATIVE_COMPILER_PREFIX}objdump} 
    88 magic_NATIVE_DLLTOOL=${DLLTOOL:-${NATIVE_COMPILER_PREFIX}dlltool} 
    89 magic_NATIVE_DLLWRAP=${DLLWRAP:-${NATIVE_COMPILER_PREFIX}dllwrap} 
    90 magic_NATIVE_LDFLAGS=${NATIVE_LDFLAGS} 
    91 magic_NATIVE_CXXFLAGS=${NATIVE_CXXFLAGS} 
    92 magic_NATIVE_MFLAGS=${NATIVE_MFLAGS} 
    93 magic_NATIVE_MMFLAGS=${NATIVE_MMFLAGS} 
    94 magic_NATIVE_CFLAGS=${NATIVE_CFLAGS} 
    95 magic_NATIVE_LDLIBS=${NATIVE_LDLIBS} 
    96 magic_NATIVE_DEBUG=${NATIVE_DEBUG} 
    97 magic_NATIVE_PROFILE=${NATIVE_PROFILE} 
     97magic_CROSS_COMPILING="${cross_compiling:-0}" 
     98magic_NATIVE_CC="${cc:-${native_compiler_prefix}gcc}" 
     99magic_NATIVE_CXX="${cxx:-${native_compiler_prefix}g++}" 
     100magic_NATIVE_NM="${nm:-${native_compiler_prefix}nm}" 
     101magic_NATIVE_AR="${ar:-${native_compiler_prefix}ar}" 
     102magic_NATIVE_RANLIB="${ranlib:-${native_compiler_prefix}ranlib}" 
     103magic_NATIVE_LD="${LD:-${native_compiler_prefix}g++}" 
     104magic_NATIVE_AS="${AS:-${native_compiler_prefix}as}" 
     105magic_NATIVE_STRIP="${strip:-${native_compiler_prefix}strip}" 
     106magic_NATIVE_STRINGS="${strings:-${native_compiler_prefix}strings}" 
     107magic_NATIVE_WINDRES="${windres:-${native_compiler_prefix}windres}" 
     108magic_NATIVE_OBJDUMP="${objdump:-${native_compiler_prefix}objdump}" 
     109magic_NATIVE_DLLTOOL="${dlltool:-${native_compiler_prefix}dlltool}" 
     110magic_NATIVE_DLLWRAP="${dllwrap:-${native_compiler_prefix}dllwrap}" 
     111magic_NATIVE_LDFLAGS="${native_ldflags}" 
     112magic_NATIVE_CXXFLAGS="${native_cxxflags}" 
     113magic_NATIVE_MFLAGS="${native_mflags}" 
     114magic_NATIVE_MMFLAGS="${native_mmflags}" 
     115magic_NATIVE_CFLAGS="${native_cflags}" 
     116magic_NATIVE_LDLIBS="${native_ldlibs}" 
     117magic_NATIVE_DEBUG="${native_debug}" 
     118magic_NATIVE_PROFILE="${native_profile}" 
    98119 
    99120 
    100 set | grep magic_ | sed -E 's/^magic_(.*)=(.*)/\1=${\1:-\2}/' >vars.sh 
     121set | grep magic_ | sed -E 's/^magic_(.*)=(.*)/\1="${\1:-\2}"/' >vars.sh 
    101122 
    102 set | grep magic_ | sed -E 's/^magic_(.*)=(.*)/\1?=\2/' >Makefile 
    103 echo 'include ${PROJECT_TOP_DIR}/project.mak' >>Makefile 
    104 echo 'include ${PROJECT_TOP_DIR}/magic.mak' >>Makefile 
     123set | grep magic_ | sed -E 's/^magic_(.*)=(.*)/\1=\2/' >Makefile 
     124echo 'include $(PROJECT_TOP_DIR)/project.mak' >>Makefile 
     125echo 'include $(PROJECT_TOP_DIR)/magic.mak' >>Makefile 
    105126 
     127echo "$0 $@" >./reconfigure 
     128chmod +x ./reconfigure 
     129 
     130echo "./Makefile  ./vars.sh  and ./reconfigure created." 
     131echo "Now you may do:" 
     132echo "  make compile_info" 
     133echo "  make help" 
     134echo "  make" 
     135echo "  make install" 
     136echo "  make install-dev" 
  • trunk/libjdkmidi/trunk/magic.mak

    r79 r80  
    33# Simplifies the building of a c/c++ library, it's tests, tools, examples, and documentation. 
    44# 
    5 # You must set the following make vars: 
    6 #   TOP - the top non-relative directory of the project 
    7 #   PROJECT - the project name 
    8 #   LDLIBS - libraries to link 
    9 #   OUTPUT_LIB - the output library name 
    10 #   INCLUDES - the list of additional include directories 
    11 #   DEFINES - the list of additional defines 
    12 # 
    13 # 
    14 # You can set the following variables but they default to reasonable values: 
    155 
    166PROJECT?=project 
     
    188PROJECT_VERSION?=$(shell date +%Y%m%d) 
    199 
     10CROSS_COMPILING?=0 
     11 
    2012LIBS+= 
    2113LIB_DIRS+=$(addprefix $(PROJECT_TOP_DIR)/,$(LIBS)) 
     14 
    2215TARGET_PLATFORM_GENERIC=1 
    23  
    2416TARGET_PLATFORM_MINGW32?=0 
    2517TARGET_PLATFORM_CYGWIN?=0 
     
    3123TARGET_USE_MACOSX_LIBTOOL?=0 
    3224 
     25 
    3326ifeq ($(TARGET_PLATFORM_MINGW32),1) 
    3427DEFINES+=TARGET_PLATFORM_MINGW32=1 
     
    3629EXE=.exe 
    3730PLATFORM_DIRS+=win32 mingw32 
     31LDLIBS+=$(LDLIBS_MINGW32) 
     32DEFINES+=$(DEFINES_MINGW32) 
    3833endif 
    3934 
     
    4338EXE=.exe 
    4439PLATFORM_DIRS+=posix cygwin 
     40LDLIBS+=$(LDLIBS_CYGWIN) 
     41DEFINES+=$(DEFINES_CYGWIN) $(DEFINES_POSIX) 
    4542endif 
    4643 
     
    4946TARGET_PLATFORM_GENERIC=0 
    5047PLATFORM_DIRS+=posix linux 
     48LDLIBS+=$(LDLIBS_LINUX) 
     49DEFINES+=$(DEFINES_LINUX) $(DEFINES_POSIX) 
    5150endif 
    5251 
     
    6059MACOSX_LIBTOOL=libtool 
    6160MACOSX_LIBTOOLFLAGS?=-static 
     61LDLIBS+=$(LDLIBS_MACOSX_PPC) $(LDLIBS_MACOSX) 
     62DEFINES+=$(DEFINES_MACOSX_PPC) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
    6263endif 
    6364 
     
    7172MACOSX_LIBTOOL=libtool 
    7273MACOSX_LIBTOOLFLAGS?=-static 
     74LDLIBS+=$(LDLIBS_MACOSX_I386) $(LDLIBS_MACOSX) 
     75DEFINES+=$(DEFINES_MACOSX_I386) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
    7376endif 
    7477 
     
    8689MACOSX_LIBTOOL=libtool 
    8790MACOSX_LIBTOOLFLAGS?=-static 
    88 endif 
    89  
    90  
     91LDLIBS+=$(LDLIBS_MACOSX_UNIVERSAL) $(LDLIBS_MACOSX) 
     92DEFINES+=$(DEFINES_MACOSX_UNIVERSAL) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
     93endif 
     94 
     95ifeq ($(CROSS_COMPILING),1) 
     96HOST_PLATFORM_GENERIC=1 
     97HOST_PLATFORM_MINGW32?=0 
     98HOST_PLATFORM_CYGWIN?=0 
     99HOST_PLATFORM_LINUX?=0 
     100HOST_PLATFORM_MACOSX_PPC?=0 
     101HOST_PLATFORM_MACOSX_I386?=0 
     102HOST_PLATFORM_MACOSX_UNIVERSAL?=0 
     103HOST_USE_AR?=1 
     104HOST_USE_MACOSX_LIBTOOL?=0 
     105 
     106NATIVE_COMPILE.cpp=$(NATIVE_CXX) $(NATIVE_CXXFLAGS) -c 
     107NATIVE_COMPILE.c=$(NATIVE_CC) $(NATIVE_CFLAGS) -c 
     108NATIVE_COMPILE.mm=$(NATIVE_CXX) $(NATIVE_MMFLAGS) -c 
     109NATIVE_COMPILE.m=$(NATIVE_CC) $(NATIVE_MFLAGS) -c 
     110 
     111NATIVE_LINK.cpp=$(NATIVE_CXX) $(NATIVE_CXXFLAGS) $(NATIVE_LDFLAGS) $(NATIVE_LDLIBS) 
     112NATIVE_LINK.c=$(NATIVE_CC) $(NATIVE_CFLAGS) $(NATIVE_LDFLAGS) $(NATIVE_LDLIBS) 
     113NATIVE_LINK.mm=$(NATIVE_CXX) $(NATIVE_MMFLAGS) $(NATIVE_LDFLAGS) $(NATIVE_LDLIBS) 
     114NATIVE_LINK.m=$(NATIVE_CC) $(NATIVE_MFLAGS) $(NATIVE_LDFLAGS) $(NATIVE_LDLIBS) 
     115 
     116 
     117ifeq ($(HOST_PLATFORM_MINGW32),1) 
     118NATIVE_DEFINES+=HOST_PLATFORM_MINGW32=1 
     119HOST_PLATFORM_GENERIC=0 
     120NATIVE_EXE=.exe 
     121NATIVE_PLATFORM_DIRS+=win32 mingw32 
     122NATIVE_LDLIBS+=$(LDLIBS_MINGW32) 
     123NATIVE_DEFINES+=$(DEFINES_MINGW32) 
     124endif 
     125 
     126ifeq ($(HOST_PLATFORM_CYGWIN),1) 
     127NATIVE_DEFINES+=HOST_PLATFORM_CYGWIN=1 
     128HOST_PLATFORM_GENERIC=0 
     129NATIVE_EXE=.exe 
     130PLATFORM_DIRS+=posix cygwin 
     131NATIVE_LDLIBS+=$(LDLIBS_CYGWIN) 
     132NATIVE_DEFINES+=$(DEFINES_CYGWIN) $(DEFINES_POSIX) 
     133endif 
     134 
     135ifeq ($(HOST_PLATFORM_LINUX),1) 
     136NATIVE_DEFINES+=HOST_PLATFORM_LINUX=1 
     137HOST_PLATFORM_GENERIC=0 
     138NATIVE_PLATFORM_DIRS+=posix linux 
     139NATIVE_LDLIBS+=$(LDLIBS_LINUX) 
     140NATIVE_DEFINES+=$(DEFINES_LINUX) $(DEFINES_POSIX) 
     141endif 
     142 
     143ifeq ($(HOST_PLATFORM_MACOSX_PPC),1) 
     144NATIVE_DEFINES+=HOST_PLATFORM_MACOSX=1 
     145HOST_PLATFORM_GENERIC=0 
     146HOST_PLATFORM_MACOSX=1 
     147NATIVE_PLATFORM_DIRS=macosx posix macosx-ppc 
     148HOST_USE_AR=0 
     149HOST_USE_MACOSX_LIBTOOL=1 
     150NATIVE_MACOSX_LIBTOOL=libtool 
     151NATIVE_MACOSX_LIBTOOLFLAGS?=-static 
     152NATIVE_LDLIBS+=$(LDLIBS_MACOSX_PPC) $(LDLIBS_MACOSX) 
     153NATIVE_DEFINES+=$(DEFINES_MACOSX_PPC) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
     154endif 
     155 
     156ifeq ($(HOST_PLATFORM_MACOSX_I386),1) 
     157DEFINES+=HOST_PLATFORM_MACOSX=1 
     158HOST_PLATFORM_GENERIC=0 
     159HOST_PLATFORM_MACOSX=1 
     160NATIVE_PLATFORM_DIRS=macosx posix macosx-i386 
     161HOST_USE_AR=0 
     162HOST_USE_MACOSX_LIBTOOL=1 
     163NATIVE_MACOSX_LIBTOOL=libtool 
     164NATIVE_MACOSX_LIBTOOLFLAGS?=-static 
     165NATIVE_LDLIBS+=$(LDLIBS_MACOSX_I386) $(LDLIBS_MACOSX) 
     166NATIVE_DEFINES+=$(DEFINES_MACOSX_I386) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
     167endif 
     168 
     169ifeq ($(HOST_PLATFORM_MACOSX_UNIVERSAL),1) 
     170DEFINES+=HOST_PLATFORM_MACOSX=1 
     171HOST_PLATFORM_GENERIC=0 
     172HOST_PLATFORM_MACOSX=1 
     173NATIVE_PLATFORM_DIRS=macosx posix macosx-ppc macosx-i386 
     174AUTODEPEND=0 
     175HOST_MACOSX_SDK?=/Developer/SDKs/MacOSX10.4u.sdk 
     176NATIVE_COMPILE_FLAGS+=-isysroot $(HOST_MACOSX_SDK) -arch i386 -arch ppc 
     177#NATIVE_LINK_FLAGS+=-Wl,-syslibroot,$(HOST_MACOSX_SDK) 
     178HOST_USE_AR=0 
     179HOST_USE_MACOSX_LIBTOOL=1 
     180NATIVE_MACOSX_LIBTOOL=libtool 
     181NATIVE_MACOSX_LIBTOOLFLAGS?=-static 
     182NATIVE_LDLIBS+=$(LDLIBS_MACOSX_UNIVERSAL) $(LDLIBS_MACOSX) 
     183NATIVE_DEFINES+=$(DEFINES_MACOSX_UNIVERSAL) $(DEFINES_POSIX) $(DEFINES_MACOSX) 
     184endif 
     185 
     186NATIVE_BUILD_DIR=$(PWD) 
     187NATIVE_OUTPUT_DIR=$(NATIVE_BUILD_DIR)/native 
     188NATIVE_OUTPUT_LIB_DIR?=$(NATIVE_OUTPUT_DIR)/lib 
     189NATIVE_OUTPUT_TESTS_DIR?=$(NATIVE_OUTPUT_DIR)/tests 
     190NATIVE_OUTPUT_DOCS_DIR?=$(NATIVE_OUTPUT_DIR)/docs 
     191NATIVE_OUTPUT_TOOLS_DIR?=$(NATIVE_OUTPUT_DIR)/tools 
     192NATIVE_OUTPUT_EXAMPLES_DIR?=$(NATIVE_OUTPUT_DIR)/examples 
     193NATIVE_OUTPUT_OBJ_DIR?=$(NATIVE_OUTPUT_DIR)/obj 
     194 
     195NATIVE_OUTPUT_LIB?=$(NATIVE_OUTPUT_LIB_DIR)/lib$(PROJECT).a 
     196 
     197endif 
    91198 
    92199LIB_INCLUDE_DIR+=$(addsuffix /include,$(LIB_DIRS)) 
     
    97204LIB_DOCS_DIR+=$(addsuffix /docs,$(LIB_DIRS)) 
    98205 
    99 #BUILD_DIR=$(PROJECT_TOP_DIR)/build/$(PLATFORM)-$(ARCH) 
    100 BUILD_DIR=${PWD} 
     206BUILD_DIR=$(PWD) 
    101207OUTPUT_DIR=$(BUILD_DIR)/build 
    102208OUTPUT_LIB_DIR?=$(OUTPUT_DIR)/lib 
     
    116222INSTALL_DOCS_DIR?=$(INSTALL_DIR)/share/$(PROJECT)-$(PROJECT_VERSION) 
    117223 
    118 ALL_OUTPUT_DIRS=$(OUTPUT_LIB_DIR) $(OUTPUT_TOOLS_DIR) $(OUTPUT_TESTS_DIR) $(OUTPUT_DOCS_DIR) $(OUTPUT_EXAMPLES_DIR) $(OUTPUT_OBJ_DIR) 
    119  
    120  
     224ifeq ($(CROSS_COMPILING),1) 
     225NATIVE_ALL_OUTPUT_DIRS+=$(NATIVE_OUTPUT_LIB_DIR) $(NATIVE_OUTPUT_TOOLS_DIR) $(NATIVE_OUTPUT_TESTS_DIR) $(NATIVE_OUTPUT_DOCS_DIR) $(NATIVE_OUTPUT_EXAMPLES_DIR) $(NATIVE_OUTPUT_OBJ_DIR)  
     226endif 
     227 
     228ALL_OUTPUT_DIRS+=$(OUTPUT_LIB_DIR) $(OUTPUT_TOOLS_DIR) $(OUTPUT_TESTS_DIR) $(OUTPUT_DOCS_DIR) $(OUTPUT_EXAMPLES_DIR) $(OUTPUT_OBJ_DIR) 
    121229 
    122230 
     
    132240vpath %.sh $(LIB_TESTS_DIR) 
    133241 
     242 
    134243.PRECIOUS : $(OUTPUT_OBJ_DIR)/%.o 
     244 
     245ifeq ($(CROSS_COMPILING),1) 
     246vpath %.o $(NATIVE_OUTPUT_OBJ_DIR) 
     247vpath %.a $(NATIVE_OUTPUT_LIB_DIR) 
     248.PRECIOUS : $(NATIVE_OUTPUT_OBJ_DIR)/%.o 
     249endif 
    135250 
    136251# Remove make's built-in rules that we don't want 
     
    171286 
    172287 
     288ifeq ($(CROSS_COMPILING),1) 
     289 
     290$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.mm 
     291   @echo "NATIVE_CXX    : $(notdir $<)" 
     292   @$(NATIVE_COMPILE.mm) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     293 
     294$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.m 
     295   @echo "NATIVE_CC     : $(notdir $<)" 
     296   @$(NATIVE_COMPILE.m) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     297 
     298$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.cpp 
     299   @echo "NATIVE_CXX    : $(notdir $<)" 
     300   @$(NATIVE_CXX) $(PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && $(NATIVE_COMPILE.cpp) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     301 
     302$(NATIVE_OUTPUT_OBJ_DIR)/%.o $(NATIVE_OUTPUT_OBJ_DIR)/%.d : %.c 
     303   @echo "NATIVE_CC     : $(notdir $<)" 
     304   @$(NATIVE_CC) $(PREPROCESS_FLAGS) -MM -MF $(NATIVE_OUTPUT_OBJ_DIR)/$*.d $< && $(NATIVE_COMPILE.c) -o $(NATIVE_OUTPUT_OBJ_DIR)/$*.o $< 
     305 
     306endif 
     307 
    173308$(OUTPUT_TOOLS_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
    174309   @echo "LINKING tool: $(notdir $<)" 
    175    @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_TOOLS_DIR)/$*$(EXE) $< $(LDLIBS) 
     310   @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_TOOLS_DIR)/$*$(EXE) $< -L$(OUTPUT_LIB_DIR) -l$(PROJECT) $(LDLIBS) 
    176311 
    177312$(OUTPUT_EXAMPLES_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
    178313   @echo "LINKING example: $(notdir $<)" 
    179    @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_EXAMPLES_DIR)/$*$(EXE) $< $(LDLIBS) 
     314   @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_EXAMPLES_DIR)/$*$(EXE) $< -L$(OUTPUT_LIB_DIR) -l$(PROJECT) $(LDLIBS) 
    180315 
    181316$(OUTPUT_TESTS_DIR)/%$(EXE) : $(OUTPUT_OBJ_DIR)/%.o 
    182317   @echo "LINKING test: $(notdir $<)" 
    183    @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_TESTS_DIR)/$*$(EXE) $< $(LDLIBS) 
    184  
     318   @$(LINK.cpp) $(LDFLAGS) -o $(OUTPUT_TESTS_DIR)/$*$(EXE) $< -L$(OUTPUT_LIB_DIR) -l$(PROJECT) $(LDLIBS) 
     319 
     320 
     321ifeq ($(CROSS_COMPILING),1) 
     322 
     323$(NATIVE_OUTPUT_TOOLS_DIR)/%$(NATIVE_EXE) : $(NATIVE_OUTPUT_OBJ_DIR)/%.o 
     324   @echo "NATIVE_LINKING tool: $(notdir $<)" 
     325   @$(NATIVE_LINK.cpp) $(NATIVE_LDFLAGS) -o $(NATIVE_OUTPUT_TOOLS_DIR)/$*$(NATIVE_EXE) $< -L$(NATIVE_OUTPUT_LIB_DIR) -l$(PROJECT) $(NATIVE_LDLIBS) 
     326 
     327$(NATIVE_OUTPUT_EXAMPLES_DIR)/%$(NATIVE_EXE) : $(NATIVE_OUTPUT_OBJ_DIR)/%.o 
     328   @echo "NATIVE_LINKING example: $(notdir $<)" 
     329   @$(NATIVE_LINK.cpp) $(NATIVE_LDFLAGS) -o $(NATIVE_OUTPUT_EXAMPLES_DIR)/$*$(NATIVE_EXE) $< -L$(NATIVE_OUTPUT_LIB_DIR) -l$(PROJECT) $(NATIVE_LDLIBS) 
     330 
     331$(NATIVE_OUTPUT_TESTS_DIR)/%$(NATIVE_EXE) : $(NATIVE_OUTPUT_OBJ_DIR)/%.o 
     332   @echo "NATIVE_LINKING test: $(notdir $<)" 
     333   @$(NATIVE_LINK.cpp) $(NATIVE_LDFLAGS) -o $(NATIVE_OUTPUT_TESTS_DIR)/$*$(NATIVE_EXE) $< -L$(NATIVE_OUTPUT_LIB_DIR) -l$(PROJECT) $(NATIVE_LDLIBS) 
     334endif 
    185335 
    186336ifeq ($(DEBUG),1) 
     
    188338endif 
    189339 
     340ifeq ($(NATIVE_DEBUG),1) 
     341NATIVE_COMPILE_FLAGS+=-g 
     342endif 
     343 
    190344ifeq ($(PROFILE),1) 
    191345COMPILE_FLAGS+=-pg 
    192346endif 
    193347 
     348ifeq ($(NATIVE_PROFILE),1) 
     349NATIVE_COMPILE_FLAGS+=-pg 
     350endif 
     351 
     352 
    194353 
    195354INCLUDES+=$(LIB_INCLUDE_DIR) 
     
    197356 
    198357PREPROCESS_FLAGS=$(addprefix -I,$(INCLUDES)) $(addprefix -D,$(DEFINES)) 
     358NATIVE_PREPROCESS_FLAGS=$(addprefix -I,$(INCLUDES)) $(addprefix -D,$(NATIVE_DEFINES)) 
    199359 
    200360COMPILE_FLAGS+=$(WARNINGS) $(OPTIMIZE) $(PREPROCESS_FLAGS) 
     361NATIVE_COMPILE_FLAGS+=$(NATIVE_WARNINGS) $(NATIVE_OPTIMIZE) $(NATIVE_PREPROCESS_FLAGS) 
    201362 
    202363CXXFLAGS+=$(COMPILE_FLAGS) 
     
    205366MMFLAGS+=$(COMPILE_FLAGS) 
    206367 
    207 LDLIBS+= -L$(OUTPUT_LIB_DIR) -l$(PROJECT) 
     368NATIVE_CXXFLAGS+=$(NATIVE_COMPILE_FLAGS) 
     369NATIVE_CFLAGS+=$(NATIVE_COMPILE_FLAGS) 
     370NATIVE_MFLAGS+=$(NATIVE_COMPILE_FLAGS) 
     371NATIVE_MMFLAGS+=$(NATIVE_COMPILE_FLAGS) 
     372 
     373LDLIBS+= 
    208374LDFLAGS+=$(LINK_FLAGS) 
     375 
     376NATIVE_LDLIBS+= 
     377NATIVE_LDFLAGS+=$(NATIVE_LINK_FLAGS) 
    209378 
    210379# get the list of library source files from the ../src directory 
     
    214383LIB_MM_FILES=$(notdir $(foreach dir,$(LIB_SRC_DIR),$(wildcard $(dir)/*.mm)))  
    215384LIB_O_FILES=$(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_CPP_FILES:.cpp=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_C_FILES:.c=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_M_FILES:.m=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_MM_FILES:.mm=.o)) 
     385 
     386ifeq ($(CROSS_COMPILING),1) 
     387NATIVE_LIB_O_FILES=$(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_CPP_FILES:.cpp=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_C_FILES:.c=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_M_FILES:.m=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_MM_FILES:.mm=.o)) 
     388endif 
    216389 
    217390LIB_INCLUDE_FILES=$(wildcard $(LIB_INCLUDE_DIR)/*.h)  
     
    224397LIB_TOOLS_O_FILES=$(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_TOOLS_CPP_FILES:.cpp=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_TOOLS_C_FILES:.c=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_TOOLS_M_FILES:.m=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_TOOLS_MM_FILES:.mm=.o)) 
    225398LIB_TOOLS_EXE_FILES=$(addprefix $(OUTPUT_TOOLS_DIR)/,$(notdir $(LIB_TOOLS_O_FILES:.o=$(EXE)))) 
     399ifeq ($(CROSS_COMPILING),1) 
     400NATIVE_LIB_TOOLS_O_FILES=$(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(NATIVE_LIB_TOOLS_CPP_FILES:.cpp=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(NATIVE_LIB_TOOLS_C_FILES:.c=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(NATIVE_LIB_TOOLS_M_FILES:.m=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_TOOLS_MM_FILES:.mm=.o)) 
     401NATIVE_LIB_TOOLS_EXE_FILES=$(addprefix $(NATIVE_OUTPUT_TOOLS_DIR)/,$(notdir $(NATIVE_LIB_TOOLS_O_FILES:.o=$(NATIVE_EXE)))) 
     402endif 
    226403 
    227404# get the list of test program source files from the ../tests directory 
     
    234411 
    235412LIB_TESTS_SH_FILES=$(foreach dir,$(LIB_TESTS_DIR),$(wildcard $(dir)/*.sh)) $(foreach platform,$(PLATFORM_DIRS),$(foreach dir,$(LIB_TESTS_DIR),$(wildcard $(dir)/$(platform)/*.sh))) 
     413ifeq ($(CROSS_COMPILING),1) 
     414NATIVE_LIB_TESTS_O_FILES=$(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_TESTS_CPP_FILES:.cpp=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_TESTS_C_FILES:.c=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_TESTS_M_FILES:.m=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_TESTS_MM_FILES:.mm=.o)) 
     415NATIVE_LIB_TESTS_EXE_FILES=$(addprefix $(NATIVE_OUTPUT_TESTS_DIR)/,$(notdir $(NATIVE_LIB_TESTS_O_FILES:.o=$(NATIVE_EXE)))) 
     416NATIVE_LIB_TESTS_SH_FILES=$(foreach dir,$(NATIVE_LIB_TESTS_DIR),$(wildcard $(dir)/*.sh)) $(foreach platform,$(NATIVE_PLATFORM_DIRS),$(foreach dir,$(NATIVE_LIB_TESTS_DIR),$(wildcard $(dir)/$(platform)/*.sh))) 
     417endif 
     418 
     419 
    236420 
    237421# get the list of example program source files from the ../examples directory 
     
    242426LIB_EXAMPLES_O_FILES=$(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_CPP_FILES:.cpp=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_C_FILES:.c=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_M_FILES:.m=.o)) $(addprefix $(OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_MM_FILES:.mm=.o)) 
    243427LIB_EXAMPLES_EXE_FILES=$(addprefix $(OUTPUT_EXAMPLES_DIR)/,$(notdir $(LIB_EXAMPLES_O_FILES:.o=$(EXE)))) 
     428ifeq ($(CROSS_COMPILING),1) 
     429NATIVE_LIB_EXAMPLES_O_FILES=$(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_CPP_FILES:.cpp=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_C_FILES:.c=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_M_FILES:.m=.o)) $(addprefix $(NATIVE_OUTPUT_OBJ_DIR)/,$(LIB_EXAMPLES_MM_FILES:.mm=.o)) 
     430NATIVE_LIB_EXAMPLES_EXE_FILES=$(addprefix $(NATIVE_OUTPUT_EXAMPLES_DIR)/,$(notdir $(NATIVE_LIB_EXAMPLES_O_FILES:.o=$(EXE)))) 
     431endif 
     432 
    244433 
    245434# manipulate these file lists to create our desired output files in the proper place 
     
    247436.PHONY : all 
    248437 
     438ifeq ($(CROSS_COMPILING),1) 
     439all : native_dirs native_lib native_tools native_tests native_examples dirs lib tools tests examples  
     440else 
    249441all : dirs lib tools tests examples  
     442endif 
     443 
    250444 
    251445.PHONY : dirs 
     
    253447dirs : 
    254448   -@$(MKDIR) -p $(ALL_OUTPUT_DIRS) 
    255  
    256449 
    257450 
     
    334527   -$(RM) $(LIB_TESTS_O_FILES) $(LIB_EXAMPLES_O_FILES) $(LIB_TOOLS_O_FILES) $(LIB_O_FILES) $(OUTPUT_OBJ_DIR)/*.d 
    335528   -$(RM) $(LIB_TESTS_EXE_FILES) $(LIB_EXAMPLES_EXE_FILES) $(LIB_TOOLS_EXE_FILES) 
     529ifeq ($(CROSS_COMPILING),1) 
     530   -$(RM) $(NATIVE_LIB_TESTS_O_FILES) $(NATIVE_LIB_EXAMPLES_O_FILES) $(NATIVE_LIB_TOOLS_O_FILES) $(NATIVE_LIB_O_FILES) $(NATIVE_OUTPUT_OBJ_DIR)/*.d 
     531   -$(RM) $(NATIVE_LIB_TESTS_EXE_FILES) $(NATIVE_LIB_EXAMPLES_EXE_FILES) $(NATIVE_LIB_TOOLS_EXE_FILES) 
     532endif 
    336533 
    337534.PHONY : realclean 
     
    343540distclean : clean 
    344541   -$(RM) $(OUTPUT_LIB) 
    345    find .. -name "*~" -print0 | xargs -0 $(RM) 
     542ifeq ($(CROSS_COMPILING),1) 
     543   -$(RM) $(NATIVE_OUTPUT_LIB) 
     544endif 
     545 
     546 
     547ifeq ($(CROSS_COMPILING),1) 
     548.PHONY : native_dirs 
     549 
     550native_dirs : 
     551   -@$(MKDIR) -p $(NATIVE_ALL_OUTPUT_DIRS) 
     552 
     553.PHONY : native_lib 
     554 
     555native_lib : native_dirs $(NATIVE_OUTPUT_LIB) 
     556 
     557$(NATIVE_OUTPUT_LIB) : $(NATIVE_LIB_O_FILES)  
     558ifeq ($(HOST_USE_AR),1) 
     559   @echo "NATIVE_AR     : $(notdir $@)($(notdir $?))" 
     560   @$(NATIVE_AR) $(NATIVE_ARFLAGS) $@ $? >/dev/null 
     561   @$(NATIVE_RANLIB) $@ 
     562endif 
     563ifeq ($(HOST_USE_MACOSX_LIBTOOL),1) 
     564   @echo "NATIVE_LIBTOOL: $(notdir $@)($(notdir $?))" 
     565#  @echo $(NATIVE_MACOSX_LIBTOOL) $(NATIVE_MACOSX_LIBTOOLFLAGS) -o $@ $^ 
     566   @$(NATIVE_MACOSX_LIBTOOL) $(NATIVE_MACOSX_LIBTOOLFLAGS) -o $@ $^ 
     567endif 
     568 
     569 
     570.PHONY : native_tools 
     571 
     572native_tools : native_lib $(NATIVE_LIB_TOOLS_EXE_FILES) 
     573    
     574.PHONY : native_examples 
     575 
     576native_examples: native_lib $(NATIVE_LIB_EXAMPLES_EXE_FILES) 
     577    
     578.PHONY : native_tests 
     579 
     580native_tests: native_lib $(NATIVE_LIB_TESTS_EXE_FILES) 
     581endif 
    346582 
    347583.PHONY : compile_info 
     
    354590   @echo "COMPILE_FLAGS: $(COMPILE_FLAGS)" 
    355591   @echo "LINK_FLAGS: $(LINK_FLAGS)" 
    356    @echo "LD_LIBS: $(LDLIBS)" 
     592   @echo "LDLIBS: $(LDLIBS)" 
    357593   @echo "OUTPUT_LIB: $(OUTPUT_LIB)" 
    358594   @echo "LIB_SRC_DIR: $(LIB_SRC_DIR)" 
     
    374610   @echo "OUTPUT_OBJ_DIR: $(OUTPUT_OBJ_DIR)" 
    375611   @echo "INSTALL_DIR: $(INSTALL_DIR)" 
     612ifeq ($(CROSS_COMPILING),1) 
     613   @echo "NATIVE_CC : $(NATIVE_CC)" 
     614   @echo "NATIVE_CXX : $(NATIVE_CXX)" 
     615   @echo "NATIVE_AR : $(NATIVE_AR)" 
     616   @echo "NATIVE_RANLIB : $(NATIVE_RANLIB)" 
     617   @echo "NATIVE_COMPILE_FLAGS: $(NATIVE_COMPILE_FLAGS)" 
     618   @echo "NATIVE_LINK_FLAGS: $(NATIVE_LINK_FLAGS)" 
     619   @echo "NATIVE_LDLIBS: $(NATIVE_LDLIBS)" 
     620   @echo "NATIVE_OUTPUT_LIB: $(NATIVE_OUTPUT_LIB)" 
     621endif 
    376622 
    377623.PHONY : help 
  • trunk/libjdkmidi/trunk/project.mak

    r79 r80  
     1 
    12PROJECT=jdkmidi 
    23PROJECT_NAME=libjdkmidi 
    34PROJECT_VERSION=2.1 
     5PROJECT_EMAIL='<jeffk@jdkoftinoff.com>' 
     6PROJECT_LICENSE='GPL' 
    47 
    58LIBS+=. 
    69 
     10DEFINES_MINGW32+= 
     11LDLIBS_MINGW32+=-lwinmm 
     12 
     13DEFINES_CYGWIN+= 
     14LDLIBS_CYGWIN+= 
     15 
     16DEFINES_LINUX+= 
     17LDLIBS_LINUX+= 
     18 
     19DEFINES_MACOSX+= 
     20LDLIBS_MACOSX+= 
     21 
     22DEFINES_MACOSX_PPC+= 
     23LDLIBS_MACOSX_PPC+= 
     24 
     25