DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: M T

⟦3394ccb21⟧ TextFile

    Length: 8510 (0x213e)
    Types: TextFile
    Names: »Makefile«

Derivation

└─⟦a05ed705a⟧ Bits:30007078 DKUUG GNU 2/12/89
    └─⟦cc8755de2⟧ »./libg++-1.36.1.tar.Z« 
        └─⟦23757c458⟧ 
            └─⟦this⟧ »libg++/Makefile« 

TextFile

# 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