|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: M T
Length: 8510 (0x213e) Types: TextFile Names: »Makefile«
└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89 └─⟦cc8755de2⟧ »./libg++-1.36.1.tar.Z« └─⟦23757c458⟧ └─⟦this⟧ »libg++/Makefile«
# Makefile for g++ library version 1.36.1 # Copyright (C) 1989 Free Software Foundation, Inc. # written by Doug Lea (dl@rocky.oswego.edu) #This file is part of GNU libg++. #GNU libg++ is free software; you can redistribute it and/or modify #it under the terms of the GNU General Public License as published by #the Free Software Foundation; either version 1, or (at your option) #any later version. #GNU libg++ is distributed in the hope that it will be useful, #but WITHOUT ANY WARRANTY; without even the implied warranty of #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #GNU General Public License for more details. #You should have received a copy of the GNU General Public License #along with GNU libg++; see the file COPYING. If not, write to #the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ########################################################################### # # Directories, paths, compilation flags and program names. # # Please make sure these are correct. # # ------ source locations # Manually set PWD to *this* directory if you are not using gnu make PWD := $(shell pwd) # source include directory SRCIDIR= $(PWD)/g++-include # ------ installation destinations # ------ You will require write-permission on the destination directories # ------ in order to `make install' # set `prefix' to something else if you want to install things # in nonstandard places prefix =/usr/gnu # libg++.a destination LIBDIR = $(prefix)/lib # executables directory: location to install the genclass class generator BINDIR = $(prefix)/bin # location to install include file directory IDIR = $(prefix)/lib/g++-include # ------- System-dependent defines # ------- use the second form of each for SystemV (USG) # g++ flags OSFLAG= #OSFLAG = -DUSG # use this only if you have a strange stdio implementation # -- recommended for DGUX and HPUX #OSFLAG = -DDEFAULT_filebuf # use this if you do not want gnulib3 in libg++.a #OSFLAG = -DNO_GNULIB3 # ld or ld++ flags OSLDFLAG = #OSLDFLAG= -lPW # how to install INSTALL=install -c #INSTALL=cp # ranlib if necessary RANLIB=ranlib #RANLIB=echo # which make? MAKE=make # not used, but convenient for those who preprocess things while compiling SHELL=/bin/sh # ------ compiler names # GNU C++ compiler name GXX = g++ #GXX=gcc # GNU CC compiler name (needed for some .c files in libg++.a) CC = gcc # GNU loader LDXX = $(LIBDIR)/gcc-ld #LDXX = $(LIBDIR)/gcc-ld++ # crt0+.o location (for dynamic loading tests) GXXCRT1=$(LIBDIR)/crt1+.o # ------ Other compilation flags # ------ modify as you like -- the ones here are sheer overkill GXX_OPTIMIZATION_FLAGS= -O -fstrength-reduce -felide-constructors -fschedule-insns -fdelayed-branch -fsave-memoized GCC_OPTIMIZATION_FLAGS= -O -fstrength-reduce -fdelayed-branch DEBUG_FLAGS= -g #use this only if you like to look at lots of useless messages #VERBOSITY_FLAGS= -Wall -v VERBOSITY_FLAGS= -Wall GXX_INCLUDE_DIRS= -I$(SRCIDIR) GCC_INCLUDE_DIRS= -I$(prefix)/lib/gcc-include -I/usr/include -I$(SRCIDIR) PIPE_AS= -pipe # Flags for all C++ compiles GXXFLAGS = $(OSFLAG) $(GXX_INCLUDE_DIRS) $(DEBUG_FLAGS) $(GXX_OPTIMIZATION_FLAGS) $(VERBOSITY_FLAGS) $(PIPE_AS) # Flags for all C compiles CFLAGS= $(OSFLAG) $(GCC_INCLUDE_DIRS) $(DEBUG_FLAGS) $(GCC_OPTIMIZATION_FLAGS) $(VERBOSITY_FLAGS) $(PIPE_AS) # g++ load time flags GXXLDFLAGS = -L$(PWD)/src -lg++ -lm $(OSLDFLAG) ########################################################################### # # compilation actions # src/libg++.a: (cd src; $(MAKE) GXX="$(GXX)" GXXFLAGS="$(GXXFLAGS)" GXXLDFLAGS="$(GXXLDFLAGS)" LIBDIR="$(LIBDIR)" SRCIDIR="$(SRCIDIR)" CC="$(CC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" LDXX="$(LDXX)" GXXCRT1="$(GXXCRT1)" MAKE="$(MAKE)" prefix="$(prefix)" ) .PHONY: tests etc gperf clean tests: src/libg++.a (cd tests; $(MAKE) checktests GXX="$(GXX)" GXXFLAGS="$(GXXFLAGS)" GXXLDFLAGS="$(GXXLDFLAGS)" LIBDIR="$(LIBDIR)" SRCIDIR="$(SRCIDIR)" CC="$(CC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" LDXX="$(LDXX)" GXXCRT1="$(GXXCRT1)" MAKE="$(MAKE)" prefix="$(prefix)") etc: (cd etc; $(MAKE) GXX="$(GXX)" GXXFLAGS="$(GXXFLAGS)" GXXLDFLAGS="$(GXXLDFLAGS)" LIBDIR="$(LIBDIR)" SRCIDIR="$(SRCIDIR)" CC="$(CC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" LDXX="$(LDXX)" GXXCRT1="$(GXXCRT1)" MAKE="$(MAKE)" prefix="$(prefix)") gperf: (cd gperf; $(MAKE) GXX="$(GXX)" GXXFLAGS="$(GXXFLAGS)" GXXLDFLAGS="$(GXXLDFLAGS)" LIBDIR="$(LIBDIR)" SRCIDIR="$(SRCIDIR)" CC="$(CC)" CFLAGS="$(CFLAGS)" RANLIB="$(RANLIB)" LDXX="$(LDXX)" GXXCRT1="$(GXXCRT1)" prefix="$(prefix)") genclass: genclass.sh echo "/^PROTODIR=/c\\" > sedscript echo "PROTODIR=$(IDIR)" >> sedscript sed < genclass.sh > genclass -f sedscript chmod 0755 genclass rm -f sedscript ########################################################################### # # Installation # all: src/libg++.a install tests etc gperf install: install-libg++.a install-genclass install-include-files install-libg++.a: src/libg++.a (cd src; $(INSTALL) libg++.a $(LIBDIR)) $(RANLIB) $(LIBDIR)/libg++.a install-genclass: genclass $(INSTALL) genclass $(BINDIR) install-include-files: -mkdir $(IDIR) -mkdir $(IDIR)/sys -cd $(SRCIDIR); \ FILES=`find . -type f -print`; \ cd $(IDIR); \ rm -fr $$FILES; \ rm -f Stack.ccP Queue.ccP Deque.ccP; \ cd $(SRCIDIR); \ FILES=`find . -type f -print`; \ for file in $$FILES; do \ rm -f $(IDIR)/$$file; \ cp $$file $(IDIR)/$$file; \ chmod 0444 $(IDIR)/$$file; \ echo $$file installed; \ done ########################################################################### # # Destructors # clean: (cd src; $(MAKE) clean) (cd tests; $(MAKE) clean) (cd etc; $(MAKE) clean) (cd gperf; $(MAKE) realclean) -rm -f genclass libg++.info* libg++.?? libg++.??s libg++.log libg++.toc libg++.*aux -rm -f *.orig src/*.orig tests/*.orig etc/*.orig g++-include/*.orig g++-include/sys/*.orig -rm -f *~ src/*~ tests/*~ etc/*~ g++-include/*~ g++-include/sys/*~ -rm -f a.out src/a.out tests/a.out etc/a.out -rm -f *.s src/*.s tests/*.s etc/*.s ########################################################################### # # Some helpful things for folks on Suns, from Ron Guilmette # NOTE: these do not refer to libg++, but might be helpful in configuration # with MCC/ESKIT systems SUN_INCLUDE_SUBDIRS=\ arpa \ pixrect \ rpcsvc \ sun \ sundev \ suntool \ sunwindow \ sys # WARNING! If you add sys/time.h to the list below, it will mess up the generation # of the sun-incl-patches file (see below). SUN_INCLUDE_FILES=\ netdb.h \ signal.h \ strings.h \ time.h \ arpa/inet.h \ pixrect/memvar.h \ pixrect/pixfont.h \ pixrect/pixrect.h \ pixrect/pixrect_hs.h \ pixrect/traprop.h \ rpcsvc/rstat.h \ sun/fbio.h \ sundev/kbio.h \ sundev/msio.h \ sundev/vuid_event.h \ suntool/canvas.h \ suntool/icon.h \ suntool/icon_load.h \ suntool/panel.h \ suntool/scrollbar.h \ suntool/sunview.h \ suntool/walkmenu.h \ suntool/window.h \ suntool/wmgr.h \ sunwindow/attr.h \ sunwindow/notify.h \ sunwindow/pixwin.h \ sunwindow/win_cursor.h \ sys/dir.h \ sys/fcntl.h \ sys/ioctl.h \ sys/stat.h \ sys/vfs.h \ sys/wait.h \ sys/resource.h \ sys/ttychars.h \ sys/types.h \ sys/param.h sun-include-files: cd g++-include; \ rm -fr $(SUN_INCLUDE_SUBDIRS); \ mkdir $(SUN_INCLUDE_SUBDIRS); \ for file in $(SUN_INCLUDE_FILES); do \ cp /usr/include/$$file ./$$file; \ done; \ sh -x ../sun-incl-patches # Note that there is a problem if you use "diff -re". The problem is that if # there are sundirectories, the shell script which is produced fails to have # the whole (relative) pathname of the files to be edited in the "ed - " # command lines. Thus, we have to edit the patches file to put these full # relative pathnames in. This is done automagically below. sun-incl-patches: -rm -fr sun-include -mkdir sun-include cd sun-include; \ for DIR in $(SUN_INCLUDE_SUBDIRS); do \ mkdir $$DIR; \ done for FILE in $(SUN_INCLUDE_FILES); do \ ln g++-include/$$FILE sun-include/$$FILE; \ done -rm -f /tmp/sun-incl-patches /tmp/patches-patches ./sun-incl-patches -cd sun-include; \ diff -re /usr/include . > /tmp/sun-incl-patches -rm -fr sun-include touch /tmp/patches-patches for PATH in $(SUN_INCLUDE_FILES); do \ BASE=`/usr/bin/basename $$PATH`; \ echo 's%^ed - '$$BASE'%ed - '$$PATH'%' >> /tmp/patches-patches; \ done sed -f /tmp/patches-patches /tmp/sun-incl-patches > ./sun-incl-patches -rm -f /tmp/sun-incl-patches /tmp/patches-patches