1 ## -*-makefile-*- 2 ## Darwin-specific setup (Darwin is the Mac OS X developer preview, successor 3 ## to Rhapsody, aka Mac OS X Server) 4 ## Copyright (c) 1999-2011 International Business Machines Corporation and 5 ## others. All Rights Reserved. 6 7 ## Flags for position independent code 8 SHAREDLIBCFLAGS = -dynamic 9 SHAREDLIBCXXFLAGS = -dynamic 10 SHAREDLIBCPPFLAGS = 11 12 # Pad out the paths to the maximum possible length 13 LD_FLAGS += -headerpad_max_install_names 14 15 ## Commands to generate dependency files 16 GEN_DEPS.c= $(CC) -E -MMD $(DEFS) $(CPPFLAGS) 17 GEN_DEPS.cc= $(CXX) -E -MMD $(DEFS) $(CPPFLAGS) 18 19 ## Commands to compile 20 COMPILE.c= $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -fno-common -c 21 COMPILE.cc= $(CXX) $(DEFS) $(CPPFLAGS) $(CXXFLAGS) -fno-common -c 22 23 ## Commands to make a shared library 24 SHLIB.c= $(CC) -dynamiclib -dynamic $(CFLAGS) $(LDFLAGS) $(LD_SOOPTIONS) 25 SHLIB.cc= $(CXX) -dynamiclib -dynamic $(CXXFLAGS) $(LDFLAGS) $(LD_SOOPTIONS) 26 27 ## Compiler switches to embed a library name and version information 28 ifeq ($(ENABLE_RPATH),YES) 29 LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(libdir)/$(notdir $(MIDDLE_SO_TARGET)) 30 else 31 LD_SONAME = -Wl,-compatibility_version -Wl,$(SO_TARGET_VERSION_MAJOR) -Wl,-current_version -Wl,$(SO_TARGET_VERSION) -install_name $(notdir $(MIDDLE_SO_TARGET)) 32 endif 33 34 ## Compiler switch to embed a runtime search path 35 LD_RPATH= 36 LD_RPATH_PRE= -Wl,-rpath, 37 38 ## Environment variable to set a runtime search path 39 LDLIBRARYPATH_ENVVAR = DYLD_LIBRARY_PATH 40 41 GENCCODE_ASSEMBLY=-a gcc-darwin 42 43 ## Shared object suffix 44 SO= dylib 45 ## Non-shared intermediate object suffix 46 STATIC_O = ao 47 48 ## Override Versioned target for a shared library. 49 FINAL_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION).$(SO) 50 MIDDLE_SO_TARGET= $(basename $(SO_TARGET)).$(SO_TARGET_VERSION_MAJOR).$(SO) 51 52 ## Compilation rules 53 %.$(STATIC_O): $(srcdir)/%.c 54 $(COMPILE.c) $(STATICCPPFLAGS) $(STATICCFLAGS) -o $@ $< 55 %.o: $(srcdir)/%.c 56 $(COMPILE.c) $(DYNAMICCPPFLAGS) $(DYNAMICCFLAGS) -o $@ $< 57 58 %.$(STATIC_O): $(srcdir)/%.cpp 59 $(COMPILE.cc) $(STATICCPPFLAGS) $(STATICCXXFLAGS) -o $@ $< 60 %.o: $(srcdir)/%.cpp 61 $(COMPILE.cc) $(DYNAMICCPPFLAGS) $(DYNAMICCXXFLAGS) -o $@ $< 62 63 64 ## Dependency rules 65 %.d : $(srcdir)/%.c 66 @echo "generating dependency information for $<" 67 @$(GEN_DEPS.c) $< > /dev/null 68 @mv $@ $@~ 69 @printf "%s" "$@ " > $@ 70 @cat < $@~ >> $@ 71 @-rm $@~ 72 73 %.d : $(srcdir)/%.cpp 74 @echo "generating dependency information for $<" 75 @$(GEN_DEPS.cc) $< >/dev/null 76 @mv $@ $@~ 77 @printf "%s" "$@ " > $@ 78 @cat < $@~ >> $@ 79 @-rm $@~ 80 81 ## Versioned libraries rules 82 83 %.$(SO_TARGET_VERSION_MAJOR).$(SO): %.$(SO_TARGET_VERSION).$(SO) 84 $(RM) $@ && ln -s ${<F} $@ 85 %.$(SO): %.$(SO_TARGET_VERSION_MAJOR).$(SO) 86 $(RM) $@ && ln -s ${*F}.$(SO_TARGET_VERSION).$(SO) $@ 87 88 # tzcode option 89 TZORIG_EXTRA_CFLAGS=-DSTD_INSPIRED 90 91 # genren opts 92 GENREN_PL_OPTS=-x Mach-O -n '-g' -p '| c++filt' 93 94 ## Remove shared library 's' 95 STATIC_PREFIX_WHEN_USED = 96 STATIC_PREFIX = 97 98 ## End Darwin-specific setup 99