]> git.saurik.com Git - apple/libsystem.git/blame - Makefile.postamble
Libsystem-88.1.10.tar.gz
[apple/libsystem.git] / Makefile.postamble
CommitLineData
435227b9
A
1include $(CoreOSMakefiles)/ProjectBuilder/Makefile.Postamble.Common
2
10dba534
A
3CC = $(GCC) # override
4# gcc-3.5 doesn't support -precomp-trustfile (3689986), which
5# pb_makefiles/flags.make sets, so we overwrite PRECOMP_CFLAGS
6PRECOMP_CFLAGS =
7
8ifeq "$(BUILD_TYPE)" "normal"
9LIBS += $(GCCLIBS)
10else
11LIBS =
435227b9
A
12endif
13
10dba534
A
14LIBS := $(foreach LIB, \
15 $(filter $(BSD_LIBS), $(subst -l,,$(LIBS))), \
16 $(LIBSYS)/lib$(LIB).a) \
17 $(filter-out $(addprefix -l, $(BSD_LIBS)), $(LIBS))
18
435227b9
A
19# pb_makefiles erroneously omits $(BUILD_TYPE_SUFFIX) from the install name
20DYLIB_INSTALL_NAME = $(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$(BUILD_TYPE_SUFFIX)$(LIBRARY_EXT)
21
22# The nonversioned suffix link is required by cc -pg, which is a bug in the compiler.
23# We can remove those when this is fixed.
24
25override DEBUG_SUFFIX = _debug
26PRODUCTS += $(foreach TYPE, DEBUG PROFILE, \
27 $(PRODUCT_DIR)/$(LIBRARY_PREFIX)$(NAME)$($(TYPE)_SUFFIX)$(LIBRARY_EXT) \
28 $(PRODUCT_DIR)/$(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$($(TYPE)_SUFFIX)$(LIBRARY_EXT) \
29 )
30
31SystemFramework = $(NSFRAMEWORKDIR)/System.framework
4a9703e6 32VersionDir = Versions/$(VERSION_NAME)
435227b9
A
33
34compat-next:
35 $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)"
36 $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)/Versions"
4a9703e6
A
37 $(INSTALL_DIRECTORY) "$(DSTROOT)$(SystemFramework)/$(VersionDir)"
38 $(LN) -fs "$(VERSION_NAME)" "$(DSTROOT)$(SystemFramework)/Versions/Current"
39 for suffix in "" $(DEBUG_SUFFIX) $(PROFILE_SUFFIX); do \
40 $(LN) -fs "Versions/Current/$(NAME)$${suffix}" "$(DSTROOT)$(SystemFramework)/$(NAME)$${suffix}" ; \
41 $(LN) -fs "../../../../../..$(INSTALLDIR)/$(LIBRARY_PREFIX)$(NAME).$(VERSION_NAME)$${suffix}$(LIBRARY_EXT)" \
42 "$(DSTROOT)$(SystemFramework)/$(VersionDir)/$(NAME)$${suffix}" ; \
435227b9 43 done
4a9703e6 44 $(LN) -fs "Versions/Current/PrivateHeaders" "$(DSTROOT)$(SystemFramework)"
435227b9
A
45
46compat-bsd:
47 for lib in $(BSD_LIBS) ; do \
48 $(LN) -fs libSystem.dylib "$(DSTROOT)$(INSTALLDIR)/lib$${lib}.dylib"; \
49 done
4a9703e6
A
50
51copy_plist:
52 $(MKDIR) $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources
53 $(LN) -fs Versions/Current/Resources $(DSTROOT)$(SystemFramework)/Resources
54 $(RM) -f $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources/Info.plist
55 $(CP) $(SRCROOT)/Info.plist $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources
56 $(CHMOD) 444 $(DSTROOT)$(SystemFramework)/$(VersionDir)/Resources/Info.plist
e29534dc
A
57
58.PHONY: comm-page-symbols
59comm-page-symbols: spinlock_stub.o spinlocktry_stub.o spinunlock_stub.o CommPageSymbols.o
60
61.SUFFIXES: .st
62
10dba534
A
63SEG1ADDR_i386 = 0xffff0000
64SEG1ADDR_ppc = 0xffff8000
65SEG1ADDR_ppc64 = 0xffffffffffff8000
e29534dc
A
66SLFS_F_PH = /System/Library/Frameworks/System.framework/PrivateHeaders
67
10dba534 68$(OFILE_DIR)/%.ppc.o %.ppc.o $(OFILE_DIR)/%.ppc64.o %.ppc64.o $(OFILE_DIR)/%.i386.o %.i386.o: %.st
e29534dc
A
69 $(CC) -arch $(CURRENT_ARCH) -x assembler-with-cpp \
70 -I$(SLFS_F_PH)/$(CURRENT_ARCH) \
71 $(ALL_CFLAGS) -c -o $(OFILE_DIR)/commsym.$(CURRENT_ARCH).o $<
10dba534 72 ld -arch $(CURRENT_ARCH) -r -seg1addr $(SEG1ADDR_$(CURRENT_ARCH)) \
e29534dc
A
73 $(OFILE_DIR)/commsym.$(CURRENT_ARCH).o -o $(OFILE_DIR)/$(notdir $@)
74
10dba534 75#-------------------------------------------------------------------------
8594eb27 76
10dba534 77LIBGCC = $(shell $(CC) -arch $(RC_ARCHS) -print-file-name=libgcc.a)