# $OpenBSD: Makefile.bsd-wrapper,v 1.2 1999/05/28 14:26:17 espie Exp $ IO_DIR= $(.CURDIR)/../libio LIBIBERTY_DIR= $(.CURDIR)/../libiberty STD_DIR= $(.CURDIR)/std .if defined(OBJMACHINE) OBJDIR= obj.${MACHINE} .else OBJDIR= obj .endif IO_OBJDIR!= if [ -d $(IO_DIR)/$(OBJDIR) ]; then \ echo $(IO_DIR)/$(OBJDIR); \ else \ echo $(IO_DIR); \ fi LIBIBERTY_OBJDIR!=if [ -d $(LIBIBERTY_DIR)/$(OBJDIR) ]; then \ echo $(LIBIBERTY_DIR)/$(OBJDIR); \ else \ echo $(LIBIBERTY_DIR); \ fi LIB= stdc++ CXXFLAGS+= -fno-implicit-templates CPPFLAGS+= -I$(.CURDIR) -I$(.CURDIR)/stl -I$(.CURDIR)/../libio -I$(IO_OBJDIR) LDADD+= -lm # stdc++ sources/objs STD_SRCS= cstringi.cc stdexcepti.cc cstdlibi.cc cmathi.cc stlinst.cc SPEC_OBJS= cstrmain.o cstrio.o fcomplex.o fcomio.o dcomplex.o dcomio.o \ ldcomplex.o ldcomio.o STD_OBJS= $(STD_SRCS:N*.h:R:S/$/.o/g) $(SPEC_OBJS) # As we need to fill variables with contents of dynamically created files # we must first see to that they are really generated. This is a hack that # ensures this. The echo at the end is because make doesn't like command # substitutions to not generate output. .ifmake !obj && !clean && !cleandir && !includes PREREQ!= test ! -f $(IO_OBJDIR)/iostream.list && \ (cd $(IO_DIR); \ make -f Makefile.bsd-wrapper iostream.list); \ test ! -f $(LIBIBERTY_OBJDIR)/needed-list && \ (cd $(LIBIBERTY_DIR); \ make -f Makefile.bsd-wrapper needed-list); \ echo 'Prerequisites made' IO_OBJS!= cat $(IO_OBJDIR)/iostream.list QIO_OBJS= $(IO_OBJS:S/^/$(IO_OBJDIR)\//g) LIBIBERTY_SRCS!=cat $(LIBIBERTY_OBJDIR)/needed-list LIBIBERTY_OBJS=$(LIBIBERTY_SRCS:N*.h:R:S/$/.o/g) # XXX why does strerror.o need to be hardwired? LIBIBERTY_OBJS+=strerror.o QLIBIBERTY_OBJS=$(LIBIBERTY_OBJS:S/^/$(LIBIBERTY_OBJDIR)\//g) .endif SRCS= $(STD_SRCS) OBJS= $(SPEC_OBJS) $(QIO_OBJS) $(QLIBIBERTY_OBJS) G_CFG_H= $(IO_OBJDIR)/_G_config.h all: $(G_CFG_H) beforedepend: $(G_CFG_H) $(G_CFG_H): cd $(IO_DIR); ${MAKE} -f Makefile.bsd-wrapper _G_config.h clean: _SUBDIRUSE rm -f a.out [Ee]rrs mklog core *.core ${CLEANFILES} rm -f lib${LIB}.a ${STD_OBJS} rm -f lib${LIB}_p.a ${STD_OBJS:.o=.po} rm -f lib${LIB}_pic.a lib${LIB}.so.*.* ${STD_OBJS:.o=.so} rm -f llib-l${LIB}.ln ${STD_OBJS:.o=.ln} GXX_INCDIR=$(DESTDIR)/usr/include/g++ # stl stuff needs to be installed directly under GXX_INCDIR includes: @test -d $(GXX_INCDIR) || \ install -d -m 755 -o $(BINOWN) -g $(BINGRP) $(GXX_INCDIR) @test -d $(GXX_INCDIR)/std || \ install -d -m 755 -o $(BINOWN) -g $(BINGRP) $(GXX_INCDIR) $(GXX_INCDIR)/std @-cd $(.CURDIR); for i in `${MAKE} -f Makefile.in -V HEADERS` \ *.h stl/*.h std/*.h std/*.cc; do \ [ -f stl/$$i ] && i=stl/$$i; \ case $$i in stl*) j=`basename $$i`;; *) j=$$i;; esac; \ cmp -s $(GXX_INCDIR)/$$j $$i || \ ${INSTALL} ${INSTALL_COPY} -o $(BINOWN) -g $(BINGRP) -m $(NONBINMODE) \ $$i $(GXX_INCDIR)/$$j; \ done # # Misc GNU overridden targets. # $(QIO_OBJS) $(QIO_OBJS:.o=.po) $(QIO_OBJS:.o=.so): cd $(IO_DIR); $(MAKE) -f Makefile.bsd-wrapper $(QLIBIBERTY_OBJS) $(QLIBIBERTY_OBJS:.o=.po) $(QLIBIBERTY_OBJS:.o=.so): cd $(LIBIBERTY_DIR); $(MAKE) -f Makefile.bsd-wrapper stdexcepti.o: stdexcepti.cc @echo "${COMPILE.cc} -frtti ${.IMPSRC}" @${COMPILE.cc} -frtti ${.IMPSRC} -frtti -o ${.TARGET}.o @${LD} -x -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o stdexcepti.po: stdexcepti.cc @echo "${COMPILE.cc} -frtti -p ${.IMPSRC} -o ${.TARGET}" @${COMPILE.cc} -frtti -p ${.IMPSRC} -o ${.TARGET}.o @${LD} -X -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o stdexcepti.so: stdexcepti.cc @echo "${COMPILE.cc} -frtti ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" @${COMPILE.cc} -frtti ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o @${LD} -x -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o typeinfoi.o: typeinfoi.cc $(.CURDIR)/std/typeinfo.h @echo "${COMPILE.cc} -frtti ${.IMPSRC}" @${COMPILE.cc} -frtti ${.IMPSRC} -o ${.TARGET}.o @${LD} -x -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o typeinfoi.po: typeinfoi.cc $(.CURDIR)/std/typeinfo.h @echo "${COMPILE.cc} -frtti -p ${.IMPSRC} -o ${.TARGET}" @${COMPILE.cc} -frtti -p ${.IMPSRC} -o ${.TARGET}.o @${LD} -X -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o typeinfoi.so: typeinfoi.cc $(.CURDIR)/std/typeinfo.h @echo "${COMPILE.cc} -frtti ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}" @${COMPILE.cc} -frtti ${PICFLAG} -DPIC ${.IMPSRC} -o ${.TARGET}.o @${LD} -x -r ${.TARGET}.o -o ${.TARGET} @rm -f ${.TARGET}.o STRFUNCS= REP MAIN TRAITS ADDSS ADDPS ADDCS ADDSP ADDSC \ EQSS EQPS EQSP NESS NEPS NESP LTSS LTPS LTSP GTSS GTPS GTSP \ LESS LEPS LESP GESS GEPS GESP STRIO= EXTRACT INSERT GETLINE COMFUNCS= MAIN ADDCC ADDCF ADDFC SUBCC SUBCF SUBFC MULCC MULCF MULFC \ DIVCC DIVCF DIVFC PLUS MINUS EQCC EQCF EQFC NECC NECF NEFC ABS \ ARG POLAR CONJ NORM COS COSH EXP LOG POWCC POWCF POWCI POWFC \ SIN SINH SQRT COMIO= EXTRACT INSERT cstrmain.o: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.o' @$(COMPILE.cc) -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.o.o @$(LD) -x -r cstrmain.o.o -o cstrmain.o @rm -f cstrmain.o.o cstrmain.po: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) -p -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.po' @$(COMPILE.cc) -p -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.po.o @$(LD) -X -r cstrmain.po.o -o cstrmain.po @rm -f cstrmain.po.o cstrmain.so: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DC \ `for N in $(STRFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrmain.so.o @$(LD) -x -r cstrmain.so.o -o cstrmain.so @rm -f cstrmain.so.o cstrio.o: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.o' @$(COMPILE.cc) -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.o.o @$(LD) -x -r cstrio.o.o -o cstrio.o @rm -f cstrio.o.o cstrio.po: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) -p -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.po' @$(COMPILE.cc) -p -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.po.o @$(LD) -X -r cstrio.po.o -o cstrio.po @rm -f cstrio.po.o cstrio.so: sinst.cc $(STD_DIR)/bastring.h \ $(STD_DIR)/bastring.cc $(STD_DIR)/straits.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DC \ `for N in $(STRIO); do echo " -D$${N}"; done` \ $(.CURDIR)/sinst.cc -o cstrio.so.o @$(LD) -x -r cstrio.so.o -o cstrio.so @rm -f cstrio.so.o fcomplex.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.o' @$(COMPILE.cc) -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.o.o @$(LD) -x -r fcomplex.o.o -o fcomplex.o @rm -f fcomplex.o.o fcomplex.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.po' @$(COMPILE.cc) -p -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.po.o @$(LD) -X -r fcomplex.po.o -o fcomplex.po @rm -f fcomplex.po.o fcomplex.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DF \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomplex.so.o @$(LD) -x -r fcomplex.so.o -o fcomplex.so @rm -f fcomplex.so.o fcomio.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.o' @$(COMPILE.cc) -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.o.o @$(LD) -x -r fcomio.o.o -o fcomio.o @rm -f fcomio.o.o fcomio.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.po' @$(COMPILE.cc) -p -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.po.o @$(LD) -X -r fcomio.po.o -o fcomio.po @rm -f fcomio.po.o fcomio.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DF \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o fcomio.so.o @$(LD) -x -r fcomio.so.o -o fcomio.so @rm -f fcomio.so.o dcomplex.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.o' @$(COMPILE.cc) -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.o.o @$(LD) -x -r dcomplex.o.o -o dcomplex.o @rm -f dcomplex.o.o dcomplex.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.po' @$(COMPILE.cc) -p -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.po.o @$(LD) -X -r dcomplex.po.o -o dcomplex.po @rm -f dcomplex.po.o dcomplex.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomplex.so.o @$(LD) -x -r dcomplex.so.o -o dcomplex.so @rm -f dcomplex.so.o dcomio.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.o' @$(COMPILE.cc) -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.o.o @$(LD) -x -r dcomio.o.o -o dcomio.o @rm -f dcomio.o.o dcomio.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.po' @$(COMPILE.cc) -p -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.po.o @$(LD) -X -r dcomio.po.o -o dcomio.po @rm -f dcomio.po.o dcomio.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o dcomio.so.o @$(LD) -x -r dcomio.so.o -o dcomio.so @rm -f dcomio.so.o ldcomplex.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.o' @$(COMPILE.cc) -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.o.o @$(LD) -x -r ldcomplex.o.o -o ldcomplex.o @rm -f ldcomplex.o.o ldcomplex.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.po' @$(COMPILE.cc) -p -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.po.o @$(LD) -X -r ldcomplex.po.o -o ldcomplex.po @rm -f ldcomplex.po.o ldcomplex.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DLD \ `for N in $(COMFUNCS); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomplex.so.o @$(LD) -x -r ldcomplex.so.o -o ldcomplex.so @rm -f ldcomplex.so.o ldcomio.o: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.o' @$(COMPILE.cc) -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.o.o @$(LD) -x -r ldcomio.o.o -o ldcomio.o @rm -f ldcomio.o.o ldcomio.po: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) -p -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.po' @$(COMPILE.cc) -p -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.po.o @$(LD) -X -r ldcomio.po.o -o ldcomio.po @rm -f ldcomio.po.o ldcomio.so: cinst.cc $(STD_DIR)/complext.h $(STD_DIR)/complext.cc \ $(STD_DIR)/dcomplex.h $(STD_DIR)/ldcomplex.h @echo '$(COMPILE.cc) $(PICFLAG) -DPIC -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.so' @$(COMPILE.cc) $(PICFLAG) -DPIC -DLD \ `for N in $(COMIO); do echo " -D$${N}"; done` \ $(.CURDIR)/cinst.cc -o ldcomio.so.o @$(LD) -x -r ldcomio.so.o -o ldcomio.so @rm -f ldcomio.so.o .if defined(DESTDIR) CPPFLAGS+= -idirafter ${DESTDIR}/usr/include/g++ .endif .include