1 # $NetBSD: NetBSD.mk,v 1.30 2008/04/03 14:07:51 joerg Exp $
3 # Variable definitions for the NetBSD operating system.
5 # Needed for 1.6.1 and earlier due to rpcgen bugs and paths
6 .if defined(CPP) && ${CPP} == "cpp"
10 IMAKE_MAKE?= ${MAKE} # program which gets invoked by imake
14 TYPE?= type # Shell builtin
16 .if exists(/usr/sbin/user)
17 USERADD?= /usr/sbin/useradd
18 GROUPADD?= /usr/sbin/groupadd
20 USERADD?= ${LOCALBASE}/sbin/useradd
21 GROUPADD?= ${LOCALBASE}/sbin/groupadd
22 _USER_DEPENDS= user>=20000313:../../sysutils/user
25 CPP_PRECOMP_FLAGS?= # unset
27 .if ${OBJECT_FMT} == "ELF"
28 EXPORT_SYMBOLS_LDFLAGS?=-Wl,-E # add symbols to the dynamic symbol table
30 EXPORT_SYMBOLS_LDFLAGS?=-Wl,--export-dynamic
32 MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type
33 NOLOGIN?= /sbin/nologin
34 # This must be lazy and using :? evaluation doesn't work due to a make bugs.
35 PKG_TOOLS_BIN_cmd= if [ -x ${LOCALBASE}/sbin/pkg_info ]; then echo ${LOCALBASE}/sbin; else echo /usr/sbin; fi
36 PKG_TOOLS_BIN?= ${PKG_TOOLS_BIN_cmd:sh}
37 ROOT_CMD?= ${SU} - root -c
40 ULIMIT_CMD_datasize?= ulimit -d `ulimit -H -d`
41 ULIMIT_CMD_stacksize?= ulimit -s `ulimit -H -s`
42 ULIMIT_CMD_memorysize?= ulimit -m `ulimit -H -m`
44 # imake installs manpages in weird places
45 # these values from /usr/X11R6/lib/X11/config/NetBSD.cf
46 IMAKE_MAN_SOURCE_PATH= man/cat
48 IMAKE_MAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
49 IMAKE_LIBMAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
50 IMAKE_KERNMAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
51 IMAKE_FILEMAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
52 IMAKE_GAMEMAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
53 IMAKE_MISCMAN_SUFFIX= ${IMAKE_MANNEWSUFFIX}
54 IMAKE_MAN_DIR= ${IMAKE_MAN_SOURCE_PATH}1
55 IMAKE_LIBMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}3
56 IMAKE_KERNMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}4
57 IMAKE_FILEMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}5
58 IMAKE_GAMEMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}6
59 IMAKE_MISCMAN_DIR= ${IMAKE_MAN_SOURCE_PATH}7
60 IMAKE_MANINSTALL?= maninstall catinstall
62 _OPSYS_EMULDIR.aout= /emul/aout
63 _OPSYS_EMULDIR.darwin= /emul/darwin
64 _OPSYS_EMULDIR.freebsd= /emul/freebsd
65 _OPSYS_EMULDIR.hpux= /emul/hpux
66 _OPSYS_EMULDIR.irix= /emul/irix
67 _OPSYS_EMULDIR.linux= /emul/linux
68 _OPSYS_EMULDIR.linux32= /emul/linux32
69 _OPSYS_EMULDIR.netbsd= # empty
70 _OPSYS_EMULDIR.netbsd32= /emul/netbsd32
71 _OPSYS_EMULDIR.osf1= /emul/osf1
72 _OPSYS_EMULDIR.solaris= /emul/svr4
73 _OPSYS_EMULDIR.solaris32= /emul/svr4_32
74 _OPSYS_EMULDIR.sunos= /emul/sunos
76 _OPSYS_SYSTEM_RPATH?= /usr/lib
78 .if exists(/usr/include/netinet6)
79 _OPSYS_HAS_INET6= yes # IPv6 is standard
81 _OPSYS_HAS_INET6= no # IPv6 is not standard
83 _OPSYS_HAS_JAVA= no # Java is not standard
84 _OPSYS_HAS_MANZ= yes # MANZ controls gzipping of man pages
85 _OPSYS_HAS_OSSAUDIO= yes # libossaudio is available
86 _OPSYS_PERL_REQD= # no base version of perl required
87 _OPSYS_PTHREAD_AUTO= no # -lpthread needed for pthreads
88 _OPSYS_SHLIB_TYPE= ELF/a.out # shared lib type
89 _PATCH_CAN_BACKUP= yes # native patch(1) can make backups
90 _PATCH_BACKUP_ARG?= -V simple --suffix # switch to patch(1) for backup suffix
91 _USE_RPATH= yes # add rpath to LDFLAGS
93 # flags passed to the linker to extract all symbols from static archives.
95 _OPSYS_WHOLE_ARCHIVE_FLAG= -Wl,--whole-archive
96 _OPSYS_NO_WHOLE_ARCHIVE_FLAG= -Wl,--no-whole-archive
98 # for programs which use dlopen()
99 # not necessary since 1.6 (shared libs are linked against libgcc_pic)
100 .if !empty(OS_VERSION:M1.5*)
101 LINK_ALL_LIBGCC_HACK= -Wl,--whole-archive -lgcc -Wl,--no-whole-archive
104 _STRIPFLAG_CC?= ${_INSTALL_UNSTRIPPED:D:U-s} # cc(1) option to strip
105 _STRIPFLAG_INSTALL?= ${_INSTALL_UNSTRIPPED:D:U-s} # install(1) option to strip
107 .if (${MACHINE_ARCH} == alpha)
108 DEFAULT_SERIAL_DEVICE?= /dev/ttyC0
109 SERIAL_DEVICES?= /dev/ttyC0 \
111 .elif (${MACHINE_ARCH} == "i386")
112 DEFAULT_SERIAL_DEVICE?= /dev/tty00
113 SERIAL_DEVICES?= /dev/tty00 \
115 .elif (${MACHINE_ARCH} == m68k)
116 DEFAULT_SERIAL_DEVICE?= /dev/tty00
117 SERIAL_DEVICES?= /dev/tty00 \
119 .elif (${MACHINE_ARCH} == mipsel)
120 DEFAULT_SERIAL_DEVICE?= /dev/ttyC0
121 SERIAL_DEVICES?= /dev/ttyC0 \
123 .elif (${MACHINE_ARCH} == "sparc")
124 DEFAULT_SERIAL_DEVICE?= /dev/ttya
125 SERIAL_DEVICES?= /dev/ttya \
128 DEFAULT_SERIAL_DEVICE?= /dev/null
129 SERIAL_DEVICES?= /dev/null
132 # Add -mieee to CFLAGS and FFLAGS for NetBSD->=1.5V-alpha
133 .for __tmp__ in 1.5[V-Z] 1.5[A-Z][A-Z]* 1.[6-9]* [2-9].*
134 . if ${MACHINE_PLATFORM:MNetBSD-${__tmp__}-alpha} != ""
137 . endif # MACHINE_PLATFORM
140 # check for kqueue(2) support, added in NetBSD-1.6J
141 .if exists(/usr/include/sys/event.h)
142 PKG_HAVE_KQUEUE= # defined
145 # check for maximum command line length and set it in configure's environment,
146 # to avoid a test required by the libtool script that takes forever.
147 _OPSYS_MAX_CMDLEN_CMD= /sbin/sysctl -n kern.argmax
149 # If games are to be installed setgid, then SETGIDGAME is set to 'yes'
150 # (it defaults to 'no' as per defaults/mk.conf).
151 # Set the group and mode to meaningful values in that case (defaults to
152 # BINOWN, BINGRP and BINMODE as per defaults/mk.conf).
153 .if !(empty(SETGIDGAME:M[yY][eE][sS]))
156 GAMEOWN= ${GAMES_USER}
157 GAMEGRP= ${GAMES_GROUP}