pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/bootstrap/mods/mk Gimme a bsd.lib.mk that actually can...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/d39671303d73
branches:  trunk
changeset: 487689:d39671303d73
user:      tv <tv%pkgsrc.org@localhost>
date:      Tue Jan 18 17:49:26 2005 +0000

description:
Gimme a bsd.lib.mk that actually can build shlibs on Interix.

diffstat:

 bootstrap/mods/mk/Interix.bsd.lib.mk |  471 +++++++++++++++++++++++++++++++++++
 1 files changed, 471 insertions(+), 0 deletions(-)

diffs (truncated from 475 to 300 lines):

diff -r 588dd1f2ea80 -r d39671303d73 bootstrap/mods/mk/Interix.bsd.lib.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/bootstrap/mods/mk/Interix.bsd.lib.mk      Tue Jan 18 17:49:26 2005 +0000
@@ -0,0 +1,471 @@
+#      $NetBSD: Interix.bsd.lib.mk,v 1.1 2005/01/18 17:49:26 tv Exp $
+#      @(#)bsd.lib.mk  8.3 (Berkeley) 4/22/94
+
+.if !target(__initialized__)
+__initialized__:
+.if exists(${.CURDIR}/../Makefile.inc)
+.include "${.CURDIR}/../Makefile.inc"
+.endif
+.include <bsd.own.mk>
+.include <bsd.obj.mk>
+.include <bsd.depall.mk>
+.MAIN:         all
+.endif
+
+.PHONY:                checkver cleanlib libinstall
+realinstall:   checkver libinstall
+clean cleandir: cleanlib
+
+.if exists(${SHLIB_VERSION_FILE})
+SHLIB_MAJOR != . ${SHLIB_VERSION_FILE} ; echo $$major
+SHLIB_MINOR != . ${SHLIB_VERSION_FILE} ; echo $$minor
+SHLIB_TEENY != . ${SHLIB_VERSION_FILE} ; echo $$teeny
+
+# Check for higher installed library versions.
+.if !defined(NOCHECKVER) && !defined(NOCHECKVER_${LIB}) && \
+       exists(${BSDSRCDIR}/lib/checkver)
+checkver:
+       @(cd ${.CURDIR} && \
+               sh ${BSDSRCDIR}/lib/checkver -v ${SHLIB_VERSION_FILE} \
+                   -d ${DESTDIR}${LIBDIR} ${LIB})
+.endif
+.endif
+
+.if !target(checkver)
+checkver:
+.endif
+
+print-shlib-major:
+.if defined(SHLIB_MAJOR)
+       @echo ${SHLIB_MAJOR}
+.else
+       @false
+.endif
+
+print-shlib-minor:
+.if defined(SHLIB_MINOR)
+       @echo ${SHLIB_MINOR}
+.else
+       @false
+.endif
+
+print-shlib-teeny:
+.if defined(SHLIB_TEENY)
+       @echo ${SHLIB_TEENY}
+.else
+       @false
+.endif
+
+.if defined(SHLIB_MAJOR) && !empty(SHLIB_MAJOR)
+.if defined(SHLIB_MINOR) && !empty(SHLIB_MINOR)
+.if defined(SHLIB_TEENY) && !empty(SHLIB_TEENY)
+SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}.${SHLIB_TEENY}
+.else
+SHLIB_FULLVERSION=${SHLIB_MAJOR}.${SHLIB_MINOR}
+.endif
+.else
+SHLIB_FULLVERSION=${SHLIB_MAJOR}
+.endif
+.endif
+
+# add additional suffixes not exported.
+# .po is used for profiling object files.
+# .so is used for PIC object files.
+.SUFFIXES: .out .a .ln .so .po .o .s .S .c .cc .C .m .F .f .r .y .l .cl .p .h
+.SUFFIXES: .sh .m4 .m
+
+
+# Set PICFLAGS to cc flags for producing position-independent code,
+# if not already set.  Includes -DPIC, if required.
+
+# Data-driven table using make variables to control how shared libraries
+# are built for different platforms and object formats.
+# OBJECT_FMT:          currently either "ELF" or "a.out", from <bsd.own.mk>
+# SHLIB_SOVERSION:     version number to be compiled into a shared library
+#                      via -soname. Usualy ${SHLIB_MAJOR} on ELF.
+#                      NetBSD/pmax used to use ${SHLIB_MAJOR}[.${SHLIB_MINOR}
+#                      [.${SHLIB_TEENY}]]
+# SHLIB_SHFLAGS:       Flags to tell ${LD} to emit shared library.
+#                      with ELF, also set shared-lib version for ld.so.
+# SHLIB_LDSTARTFILE:   support .o file, call C++ file-level constructors
+# SHLIB_LDENDFILE:     support .o file, call C++ file-level destructors
+# FPICFLAGS:           flags for ${FC} to compile .[fF] files to .so objects.
+# CPPICFLAGS:          flags for ${CPP} to preprocess .[sS] files for ${AS}
+# CPICFLAGS:           flags for ${CC} to compile .[cC] files to .so objects.
+# CAPICFLAGS           flags for {$CC} to compiling .[Ss] files
+#                      (usually just ${CPPPICFLAGS} ${CPICFLAGS})
+# APICFLAGS:           flags for ${AS} to assemble .[sS] to .so objects.
+
+SHLIB_LDSTARTFILE=
+SHLIB_LDENDFILE=
+SHLIB_SOVERSION=       ${SHLIB_MAJOR}
+SHLIB_SHFLAGS=         -Wl,-h,lib${LIB}.so.${SHLIB_SOVERSION}
+FPICFLAGS?=
+CPICFLAGS?=            -DPIC
+CPPPICFLAGS?=          -DPIC
+CAPICFLAGS?=           ${CPPPICFLAGS} ${CPICFLAGS}
+APICFLAGS?=
+
+MKPICLIB?= yes
+
+CFLAGS+=       ${COPTS}
+FFLAGS+=       ${FOPTS}
+
+.c.o:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.c} ${.IMPSRC}
+.else
+       @echo ${COMPILE.c:Q} ${.IMPSRC}
+       @${COMPILE.c} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.c.po:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.c:Q} -pg ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.c} -pg ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -X -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.c.so:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.c:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.c} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.c.ln:
+       ${LINT} ${LINTFLAGS} ${CPPFLAGS:M-[IDU]*} -i ${.IMPSRC}
+
+.cc.o .C.o:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.cc} ${.IMPSRC}
+.else
+       @echo ${COMPILE.cc:Q} ${.IMPSRC}
+       @${COMPILE.cc} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.cc.po .C.po:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.cc:Q} -pg ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.cc} -pg ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -X -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.cc.so .C.so:
+.if defined(COPTS) && !empty(COPTS:M*-g*)
+       ${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.cc:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.cc} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.f.o:
+.if defined(FOPTS) && !empty(FOPTS:M*-g*)
+       ${COMPILE.f} ${.IMPSRC}
+.else
+       @echo ${COMPILE.f:Q} ${.IMPSRC}
+       @${COMPILE.f} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.f.po:
+.if defined(FOPTS) && !empty(FOPTS:M*-g*)
+       ${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.f:Q} -pg ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.f} -pg ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -X -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.f.so:
+.if defined(FOPTS) && !empty(FOPTS:M*-g*)
+       ${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.f:Q} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.f} ${FPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.f.ln:
+       ${ECHO} Skipping lint for Fortran libraries.
+
+.m.o:
+.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*)
+       ${COMPILE.m} ${.IMPSRC}
+.else
+       @echo ${COMPILE.m:Q} ${.IMPSRC}
+       @${COMPILE.m} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.m.po:
+.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*)
+       ${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.m:Q} -pg ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.m} -pg ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -X -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.m.so:
+.if defined(OBJCFLAGS) && !empty(OBJCFLAGS:M*-g*)
+       ${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+.else
+       @echo ${COMPILE.m:Q} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.m} ${CPICFLAGS} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+.endif
+
+.S.o .s.o:
+       @echo ${COMPILE.S:Q} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC}
+       @${COMPILE.S} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+
+.S.po .s.po:
+       @echo ${COMPILE.S:Q} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.S} -DGPROF -DPROF ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -X -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+
+.S.so .s.so:
+       @echo ${COMPILE.S:Q} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}
+       @${COMPILE.S} ${CAPICFLAGS} ${CFLAGS:M-[ID]*} ${AINC} ${.IMPSRC} -o ${.TARGET}.o
+       @${LD} -x -r ${.TARGET}.o -o ${.TARGET}
+       @rm -f ${.TARGET}.o
+
+.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \
+       || ${MKLINKLIB} != "no"
+_LIBS=lib${LIB}.a
+.else
+_LIBS=
+.endif
+
+OBJS+=${SRCS:N*.h:N*.sh:R:S/$/.o/g}
+
+.if ${MKPROFILE} != "no"
+_LIBS+=lib${LIB}_p.a
+POBJS+=${OBJS:.o=.po}
+.endif
+
+.if ${MKPIC} != "no"
+.if ${MKPICLIB} == "no"
+SOLIB=lib${LIB}.a
+.else
+SOLIB=lib${LIB}_pic.a
+_LIBS+=${SOLIB}
+SOBJS+=${OBJS:.o=.so}
+.endif
+.if defined(SHLIB_FULLVERSION)
+_LIBS+=lib${LIB}.so.${SHLIB_FULLVERSION}
+.endif
+.endif
+
+LOBJS+=${LSRCS:.c=.ln} ${SRCS:M*.c:.c=.ln}
+.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS)
+_LIBS+=llib-l${LIB}.ln
+.endif
+
+.if ${MKPIC} == "no" || (defined(LDSTATIC) && ${LDSTATIC} != "") \
+       || ${MKLINKLIB} != "no"
+ALLOBJS=${OBJS} ${POBJS} ${SOBJS}
+.else
+ALLOBJS=${POBJS} ${SOBJS} 
+.endif
+.if ${MKLINT} != "no" && ${MKLINKLIB} != "no" && !empty(LOBJS)



Home | Main Index | Thread Index | Old Index