X-Git-Url: https://git.saurik.com/apple/libc.git/blobdiff_plain/3d9156a7a519a5e3aa1b92e9d9d4b991f1aed7ff..7b00c0c43f52e9d27168e67a26aac19065cdb40c:/Makefile diff --git a/Makefile b/Makefile index 64c7f8b..c86cdf5 100644 --- a/Makefile +++ b/Makefile @@ -1,12 +1,6 @@ # @(#)Makefile 8.2 (Berkeley) 2/3/94 # $FreeBSD: src/lib/libc/Makefile,v 1.31 2001/08/13 21:48:43 peter Exp $ # -# All library objects contain rcsid strings by default; they may be -# excluded as a space-saving measure. To produce a library that does -# not contain these strings, delete -DLIBC_RCS and -DSYSLIBC_RCS -# from CFLAGS below. To remove these strings from just the system call -# stubs, remove just -DSYSLIBC_RCS from CFLAGS. -# # Yes, we build everything with -g, and strip it out later... # # -faltivec now disables inlining, so we can't use it globally. Fortunately, @@ -16,32 +10,64 @@ LIB=c SHLIB_MAJOR= 1 SHLIB_MINOR= 0 -.if (${MACHINE_ARCH} == unknown) -MACHINE_ARCH != /usr/bin/arch -.endif -CC = gcc-3.5 -# always set __DARWIN_UNIX03 to zero (variant will set to one) except for ppc64 -.if (${MACHINE_ARCH} == ppc64) -CFLAGS += -D__DARWIN_UNIX03=1 + +.include +.include + +.if !empty(MACHINE_ARCH:M*64) +LP64 = 1 +.endif +# RC_TARGET_CONFIG may not be set, so default to MacOSX (which is good enough +# for installsrc to autopatch all files). +.ifndef RC_TARGET_CONFIG +RC_TARGET_CONFIG = MacOSX +.endif + +.ifndef RC_ProjectName +RC_ProjectName = Libc +.endif + +# Use default compiler, so comment out OTHERCC +#OTHERCC = gcc-4.0 +# HOSTCC is the compiler on the local host, so we need to unset any SDKROOT +# to before calling PATH_OF_COMMAND +.ifdef OTHERCC +MYCC != ${PATH_OF_COMMAND} ${OTHERCC} +HOSTCC != export -n SDKROOT && ${PATH_OF_COMMAND} ${OTHERCC} .else -CFLAGS += -D__DARWIN_UNIX03=0 +MYCC = ${CC} +HOSTCC != export -n SDKROOT && ${PATH_OF_COMMAND} cc .endif -CFLAGS += -D__LIBC__ -DNOID -I${.CURDIR}/include +GCC_VERSION != ${MYCC} -dumpversion | ${SED} -e 's/^\([^.]*\.[^.]*\).*/\1/' +GCC_42 != ${PERL} -e "print ($(GCC_VERSION) >= 4.2 ? 'YES' : 'NO')" + .ifdef ALTLIBCHEADERS INCLUDEDIR = ${ALTLIBCHEADERS} -CFLAGS += -I${INCLUDEDIR} -.endif -.ifdef ALTFRAMEWORKSPATH -PRIVINC = -F${ALTFRAMEWORKSPATH} -I${ALTFRAMEWORKSPATH}/System.framework/PrivateHeaders -.else -PRIVINC = -I${NEXT_ROOT}/System/Library/Frameworks/System.framework/PrivateHeaders +LIBCFLAGS += -I${INCLUDEDIR} +.else # !ALTLIBCHEADERS +INCLUDEDIR = ${SDKROOT}/usr/include +.endif # ALTLIBCHEADERS +FRAMEWORKS = ${OBJROOT}/Frameworks +PRIVATEHEADERS = ${FRAMEWORKS}/System.framework/PrivateHeaders +PRIVINC = -I${PRIVATEHEADERS} +LIBCFLAGS += ${PRIVINC} + +SYMROOTINC = ${SYMROOT}/include +CFLAGS = -g -arch ${CCARCH} ${RC_NONARCH_CFLAGS} -std=gnu99 -fno-common -fno-builtin -Wmost +CFLAGS += -D__LIBC__ -D__DARWIN_UNIX03=1 -D__DARWIN_64_BIT_INO_T=1 -D__DARWIN_NON_CANCELABLE=1 -D__DARWIN_VERS_1050=1 -D_FORTIFY_SOURCE=0 +CFLAGS += -DNOID -DLIBC_MAJOR=${SHLIB_MAJOR} +CFLAGS += -I${.OBJDIR} ${VARIANTINC} -I${SYMROOTINC} -I${.CURDIR}/include +AINC = -g -arch ${CCARCH} ${RC_NONARCH_CFLAGS} +AINC += -I${.CURDIR}/${MACHINE_ARCH} ${PRIVINC} +.if $(MACHINE_ARCH) != arm +CFLAGS += -force_cpusubtype_ALL +AINC += -force_cpusubtype_ALL .endif -CFLAGS += ${PRIVINC} -CFLAGS += -DLIBC_MAJOR=${SHLIB_MAJOR} -no-cpp-precomp -force_cpusubtype_ALL -CFLAGS += -fno-common -pipe -Wmost -g -D__FBSDID=__RCSID -CFLAGS += -finline-limit=1500 --param inline-unit-growth=200 -Winline -AINC= -I${.CURDIR}/${MACHINE_ARCH} -no-cpp-precomp -force_cpusubtype_ALL -AINC+=-arch ${MACHINE_ARCH} -g +.ifdef SDKROOT +CFLAGS += -isysroot '${SDKROOT}' +AINC += -isysroot '${SDKROOT}' +.endif # SDKROOT + CLEANFILES+=tags INSTALL_PIC_ARCHIVE= yes PRECIOUSLIB= yes @@ -49,30 +75,27 @@ PRECIOUSLIB= yes # workaround for 3649783 AINC += -fdollars-in-identifiers -# ppc64 optimizer still blows up on some files, so we use -O0 to turn it -# off on a per file basis -.if (${MACHINE_ARCH} == ppc64) -OPTIMIZE-acl_entry.c = -O0 -# glob-fbsd.c fails with -static -Os (3869444) so turn off optimization -OPTIMIZE-glob-fbsd.c = -O0 -.endif - # If these aren't set give it expected defaults DSTROOT ?= / OBJROOT ?= . SRCROOT ?= ${.CURDIR} .ifndef SYMROOT SYMROOT = ${.CURDIR}/SYMROOT -_x_ != test -d ${SYMROOT} || mkdir -p ${SYMROOT} +_x_ != ${TEST} -d ${SYMROOT} || ${MKDIR} ${SYMROOT} .endif DESTDIR ?= ${DSTROOT} MAKEOBJDIR ?= ${OBJROOT} +PLATROOT != xcodebuild -version -sdk $(SDKROOT) PlatformPath | tr -d '\n' + +# add version string +SRCS += libc_version.c +libc_version.c: + ${PLATROOT}/Developer/Makefiles/bin/version.pl Libc > $@ -CFLAGS += -I${SYMROOT} +.include "Makefile.features" .include "${.CURDIR}/Makefile.inc" -.PATH: ${SYMROOT} .include "Makefile.xbs" -.if exists(/usr/share/mk/bsd.init.mk) + +MANFILTER = ${UNIFDEF} -t ${UNIFDEFARGS} .include -.endif .include