pkgsrc/mk/defs.Linux.mk
agc cb0e38446b Apply patches from Lubomir Sedlacik <salo@Xtrmntr.org> in PR 18115 to
generalise the linker flags used to export symbols by setting them on
a per-OS basis.

> many packages force -Wl,-export-dynamic which is not portable outside GNU ld
> and cause problems e.g. on Solaris.  some of these packages use if
> conditionals either only for NetBSD or except SunOS, but the state is not
> coherent and it may complicate later when support for new OS is added to
> pkgsrc (e.g. ongoing work on HP-UX support).
>
> jlam proposed the following framework in discussion on tech-pkg:
>
>   http://mail-index.netbsd.org/tech-pkg/2002/06/21/0009.html
>
> now, ${EXPORT_SYMBOLS_LDFLAGS} is used instead of directly defining
> -Wl,-export-dynamic which is set in appropriate defs.*.mk to reasonable
> values.  packages should be converted to this framework by:
>
> 1) replacing LDFLAGS+= -Wl,-export-dynamic and LIBS+= -export-dynamic with:
>
>    LDFLAGS+= ${EXPORT_SYMBOLS_LDFLAGS}
>
> 2) for use in patchfiles, add this variable to MAKE_ENV if needed:
>
>    MAKE_ENV+= EXPORT_SYMBOLS_LDFLAGS=${EXPORT_SYMBOLS_LDFLAGS}
>
> 3) replace occurances of -Wl,-export-dynamic and -export-dynamic in patch
>    files with:
>
>    $(EXPORT_SYMBOLS_LDFLAGS)
2002-09-04 14:47:32 +00:00

94 lines
2.5 KiB
Makefile

# $NetBSD: defs.Linux.mk,v 1.30 2002/09/04 14:47:33 agc Exp $
#
# Variable definitions for the Linux operating system.
AWK?= /usr/bin/awk
BASENAME?= /bin/basename
CAT?= /bin/cat
CHMOD?= /bin/chmod
CHOWN?= /bin/chown
CHGRP?= /bin/chgrp
CMP?= cmp
CP?= /bin/cp
CUT?= /bin/cut
DC?= /usr/bin/dc
DIRNAME?= /usr/bin/dirname
ECHO?= /bin/echo
EGREP?= /bin/egrep
FALSE?= /bin/false
FILE_CMD?= /usr/bin/file
FIND?= /usr/bin/find
GMAKE?= /usr/bin/make
GREP?= /bin/grep
GTAR?= /bin/tar
GUNZIP_CMD?= /usr/bin/gunzip -f
GZCAT?= /bin/zcat
GZIP?= -9
GZIP_CMD?= /usr/bin/gzip -nf ${GZIP}
HEAD?= /usr/bin/head
ID?= /usr/bin/id
LDCONFIG?= /sbin/ldconfig
LN?= /bin/ln
LS?= /bin/ls
MKDIR?= /bin/mkdir -p
MTREE?= ${ZOULARISBASE}/sbin/mtree
MV?= /bin/mv
PATCH?= /usr/bin/patch
PAX?= ${ZOULARISBASE}/bin/pax
PERL5?= ${LOCALBASE}/bin/perl
PKGLOCALEDIR?= share
PS?= /bin/ps
RM?= /bin/rm
RMDIR?= /bin/rmdir
SED?= /bin/sed
SETENV?= /usr/bin/env
SH?= /bin/sh
SHLOCK= ${LOCALBASE}/bin/shlock
.if exists(/bin/sort)
SORT?= /bin/sort
.else
SORT?= /usr/bin/sort
.endif
SU?= /bin/su
TAIL?= /usr/bin/tail
TEST?= /usr/bin/test
TOUCH?= /bin/touch
TR?= /usr/bin/tr
TRUE?= /bin/true
TYPE?= type
WC?= /usr/bin/wc
XARGS?= /usr/bin/xargs -r
CPP_PRECOMP_FLAGS?= # unset
DEF_UMASK?= 022
DEFAULT_SERIAL_DEVICE?= /dev/null
EXPORT_SYMBOLS_LDFLAGS?= # Don't add symbols to the dynamic symbol table
GROUPADD?= /usr/sbin/groupadd
MOTIF_TYPE_DEFAULT?= openmotif # default 2.0 compatible libs type
MOTIF12_TYPE_DEFAULT?= lesstif12 # default 1.2 compatible libs type
NOLOGIN?= ${FALSE}
PKG_TOOLS_BIN?= ${ZOULARISBASE}/sbin
ROOT_CMD?= ${SU} - root -c
ROOT_GROUP?= wheel
ROOT_USER?= root
SERIAL_DEVICES?= /dev/null
ULIMIT_CMD_datasize?= ulimit -d `ulimit -H -d`
ULIMIT_CMD_stacksize?= ulimit -s `ulimit -H -s`
ULIMIT_CMD_memorysize?= ulimit -m `ulimit -H -m`
USERADD?= /usr/sbin/useradd
ZOULARISBASE?= /usr/pkg
_DO_LIBINTL_CHECKS= no # perform checks for valid libintl
_DO_SHLIB_CHECKS= no # on installation, fixup PLIST for shared libs
_IMAKE_MAKE= ${MAKE} # program which gets invoked by imake
_OPSYS_HAS_GMAKE= yes # GNU make is standard
_OPSYS_HAS_MANZ= no # no MANZ for gzipping of man pages
_OPSYS_HAS_OSSAUDIO= no # libossaudio is available
_PATCH_BACKUP_ARG= -b -V simple -z # switch to patch(1) for backup suffix
_PREFORMATTED_MAN_DIR= cat # directory where catman pages are
_USE_RPATH= yes # add rpath to LDFLAGS
.if !defined(DEBUG_FLAGS)
_STRIPFLAG_CC?= -s # cc(1) option to strip
_STRIPFLAG_INSTALL?= -s # install(1) option to strip
.endif