␊ |
INSTALLDIR = $(DSTROOT)/System/Library/Frameworks/System.framework/Versions/B/PrivateHeaders/standalone␊ |
␊ |
dylib: ${MODULE_OBJS} dylib_final␊ |
␊ |
HAVE_MODULES := $(wildcard $(SYMROOT)/*.dylib)␊ |
##IS_CPP_MODULE = $(shell nm $(OBJROOT)/*.o | grep " __Z")␊ |
␊ |
ifneq ($(strip $(HAVE_MODULES)),) ␊ |
dylib: ${MODULE_OBJS}␊ |
#### Other modules Exist ####␊ |
dylib_final: ␊ |
␉@rm -rf $(SYMROOT)/$(MODULE_NAME).dylib␉#ensure module doesn't link with old version of self␊ |
␉@### Ugly hack, remove the c++ module if this module shouldn't link with it. Needed due to LD behavoir␊ |
␉@echo "\t[LD] $(MODULE_NAME).dylib"␊ |
␉@if [ -f "$(SYMROOT)/uClibc++.dylib" ]; then if [ x"$(shell nm $(OBJROOT)/*.o 2>/dev/null | grep " __Z")" == x"" ]; then mv $(SYMROOT)/uClibc++.dylib $(SYMROOT)/../uClibc++.dylib; fi; fi;␊ |
␉␊ |
␉@ld -arch i386 \␊ |
␉-undefined dynamic_lookup \␊ |
␉-alias $(MODULE_START) start \␊ |
|
␉-no_uuid \␊ |
␉-current_version $(MODULE_VERSION) -compatibility_version $(MODULE_COMPAT_VERSION) \␊ |
␉-final_output $(MODULE_NAME) \␊ |
␉-L$(OBJROOT)/ \␊ |
␉-L$(OBJROOT)/../ \␊ |
␉-L$(OBJROOT)/../*/ \␊ |
␉-L$(SYMROOT)/ \␊ |
␉$(OBJROOT)/*.o \␊ |
␉-weak_library $(SYMROOT)/*.dylib \␊ |
␉-o $(SYMROOT)/$(MODULE_NAME).dylib␊ |
␉␊ |
␉@if [ -f "$(SYMROOT)/../uClibc++.dylib" ]; then if [ x"$(shell nm $(OBJROOT)/*.o 2>/dev/null | grep " __Z")" == x"" ]; then mv $(SYMROOT)/../uClibc++.dylib $(SYMROOT)/uClibc++.dylib; fi; fi;␊ |
␊ |
else␊ |
dylib: ${MODULE_OBJS}␊ |
␊ |
#### This is the first module ####␊ |
dylib_final:␊ |
␉@rm -rf $(SYMROOT)/$(MODULE_NAME).dylib␉#ensure module doesn't link with old version of self␊ |
␉@echo "\t[LD] $(MODULE_NAME).dylib"␊ |
␉@ld -arch i386 \␊ |
␉-undefined dynamic_lookup \␊ |
␉-alias $(MODULE_START) start \␊ |
|
␉-S -x -Z -dead_strip_dylibs \␊ |
␉-no_uuid \␊ |
␉-current_version $(MODULE_VERSION) -compatibility_version $(MODULE_COMPAT_VERSION) \␊ |
␉-final_output $(MODULE_NAME) \␊ |
␉-L$(OBJROOT)/ \␊ |
␉-L$(OBJROOT)/../ \␊ |
␉-L$(OBJROOT)/../*/ \␊ |
␉-L$(SYMROOT)/ \␊ |
␉$(OBJROOT)/*.o \␊ |
␉-o $(SYMROOT)/$(MODULE_NAME).dylib␊ |
endif␊ |
␊ |
␊ |
%.o: %.c␊ |
␉@echo "\t[CC] $<"␊ |
␉@$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFINES) -c "$<" $(INC) -o "$(OBJROOT)/$@"␊ |