]> Zhao Yanbai Git Server - minix.git/commitdiff
mk scripts: add flag for compiling with nbsd libc.
authorGianluca Guida <gianluca@minix3.org>
Thu, 3 Mar 2011 16:41:19 +0000 (16:41 +0000)
committerGianluca Guida <gianluca@minix3.org>
Thu, 3 Mar 2011 16:41:19 +0000 (16:41 +0000)
This patch changes the system mk scripts to enable compilation
of programs using the BSD make system to compile with the new
libc.

In details, it does the following:

- it always defines the __MINIX make variable. This can be used,
 in porting applications, to specialize Makefiles for Minix.

 - If the environment variable NBSD is set to something different
  than 'no' and if the compiler is not ack, set NBSD_LIBC to 'yes'.
  This will set the destination lib directory to '/usr/netbsd/lib'
  and set up CPPFLAGS and LDFLAGS to use new libc's includes and
  library directory.

share/mk/bsd.files.mk
share/mk/bsd.own.mk
share/mk/bsd.prog.mk
share/mk/bsd.sys.mk
share/mk/sys.mk

index c44c5d0a9eab46c462c54fb913df644e3a082440..ee5956c3308839ce3a7ea250275e34e523d4cb89 100644 (file)
@@ -156,6 +156,6 @@ cleanuudecodefiles: .PHONY
 
 ##### Pull in related .mk logic
 .include <bsd.obj.mk>
-#.include <bsd.sys.mk>
+.include <bsd.sys.mk>
 
 .endif # !defined(_MINIX_FILES_MK_)
index 975bffce6ec10850222beffcd78165da10625837..e8bcb767873e6be60a805f0c47c7eb1378fc55a4 100644 (file)
@@ -541,6 +541,9 @@ OBJECT_FMT= ELF
 OBJECT_FMT=    a.out
 .endif
 .if ${COMPILER_TYPE} == "gnu"
+.if defined(NBSD_LIBC) && (${NBSD_LIBC} != "no")
+LIBDIR?=       /usr/netbsd/lib
+.endif
 .if ${OBJECT_FMT} == "a.out"
 LIBDIR?=       /usr/lib
 .elif ${OBJECT_FMT} == "ELF"
index 52adbfffc79e2f2f4056d2739178333d6efa0fc1..074e010334ae5e2ee29e66f92616914859af198d 100644 (file)
@@ -28,8 +28,12 @@ cleanprog: .PHONY cleanobjs cleanextra
 
 ##### Default values
 .if empty(CPPFLAGS:M-nostdinc)
+.if (${NBSD_LIBC} == "yes")
+CPPFLAGS+=     ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/netbsd/include}
+.else
 CPPFLAGS+=     ${DESTDIR:D-nostdinc ${CPPFLAG_ISYSTEM} ${DESTDIR}/usr/include}
 .endif
+.endif
 .if empty(CXXFLAGS:M-nostdinc++)
 CXXFLAGS+=     ${DESTDIR:D-nostdinc++ ${CPPFLAG_ISYSTEMXX} ${DESTDIR}/usr/include/g++}
 .endif
@@ -65,8 +69,12 @@ LIB${_lib:tu}=       ${DESTDIR}/usr/lib/lib${_lib}.a
 .if ${COMPILER_TYPE} == "ack"
 LIB${_lib:tu}= ${DESTDIR}/usr/lib/i386/lib${_lib}.a
 .elif ${COMPILER_TYPE} == "gnu"
+.if defined(NBSD_LIBC) && (${NBSD_LIBC} != "no")
+LIB${_lib:tu}=  ${DESTDIR}/usr/netbsd/lib/lib${_lib}.a
+.else
 LIB${_lib:tu}= ${DESTDIR}/usr/lib/lib${_lib}.a
 .endif
+.endif
 .MADE:         ${LIB${_lib:tu}}        # Note: ${DESTDIR} will be expanded
 .endif
 .endfor
index e36cea11bf0d06aa4f9928271b196a7d1e7cd47c..efa998e6ab49f3c28004707e8700ec0535f640a2 100644 (file)
@@ -61,6 +61,11 @@ HAS_SSP=     no
 HAS_SSP=       yes
 .endif
 
+.if defined(NBSD_LIBC) && (${NBSD_LIBC} != "no")
+CPPFLAGS+=     -nostdinc -D__NBSD_LIBC -I /usr/netbsd/include
+LDFLAGS+=      -L /usr/netbsd/lib
+.endif
+
 .if defined(USE_FORT) && (${USE_FORT} != "no")
 USE_SSP?=      yes
 .if !defined(KERNSRCDIR) && !defined(KERN) # not for kernels nor kern modules
index c5694e31cc8d8bd7fa4e941f040292e332c907ee..686ce224c427a540e93fe3853b60719c3d96d63e 100644 (file)
@@ -3,6 +3,9 @@
 
 unix?=         We run MINIX.
 
+# This variable should be used to differentiate Minix builds in Makefiles.
+__MINIX=       yes
+
 .SUFFIXES: .a .o .ln .s .S .c .cc .cpp .cxx .C .f .F .r .p .l .y #.sh
 
 .LIBS:         .a
@@ -236,3 +239,11 @@ AR=i386-pc-minix3-ar
 LD=i386-pc-minix3-ld
 OBJCOPY=i386-pc-minix3-objcopy
 .endif
+
+# Set NBSD_LIBC to either "yes" or "no".
+.if !defined(NBSD) || (${NBSD} == "no") \
+    || (${COMPILER_TYPE} == "ack") 
+NBSD_LIBC=     no
+.else
+NBSD_LIBC=     yes
+.endif