1CC= cc
2DIRS= libiberty libg++ libg++/src libg++/iostream
3BUILD_DIR= ${.CURDIR}
4TARGET_LIB= libg++.a
5INSTALL_DIR= /usr/lib
6INCLUDE_INSTALL= /usr/include/g++
7.CURDIR != pwd
8IOLIB = $(.CURDIR)/libg++/iostream/libio.a
9SRCLIB = $(.CURDIR)/libg++/src/stamp
10LIBIBERTY = $(.CURDIR)/libiberty/libiberty.a
11LIBIBERTY_OBJECTS_TO_GET = `cat needed-list` strerror.o strsignal.o
12IOSTREAM_OBS= streambuf.o stdstrbufs.o iostream.o stdstreams.o strstream.o \
13  indstream.o PlotFile.o SFile.o fstream.o parsestream.o stream.o makebuf.o \
14  editbuf.o filebuf.o sgetline.o igetline.o igetsb.o procbuf.o \
15  sbufvform.o sbufvscan.o stdiostream.o floatconv.o outfloat.o iomanip.o
16
17all $(TARGET_LIB): $(IOLIB) $(SRCLIB) $(LIBIBERTY)
18	cd ${.CURDIR}/libg++/src; ar qc ${BUILD_DIR}/${TARGET_LIB} *.o
19	cd ${.CURDIR}/libg++/iostream; ar qc ${BUILD_DIR}/${TARGET_LIB} \
20	$(IOSTREAM_OBS)
21	cd ${.CURDIR}/libiberty; ar qc ${BUILD_DIR}/${TARGET_LIB} \
22	$(LIBIBERTY_OBJECTS_TO_GET)
23	ranlib ${BUILD_DIR}/${TARGET_LIB}
24
25$(SRCLIB):
26	cd ${.CURDIR}/libg++/src; make "CC = $(CC)" "CXX = $(CC)"
27
28$(IOLIB):
29	cd ${.CURDIR}/libg++/iostream; make "CC=$(CC)" libio.a
30
31$(LIBIBERTY):
32	cd ${.CURDIR}/libiberty; make "CC=$(CC)"
33
34install: $(TARGET_LIB)
35	if [ -d ${INSTALL_DIR} ]; then true; \
36	else mkdir ${INSTALL_DIR}; \
37	fi
38	install -c -m 444 ${.CURDIR}/${TARGET_LIB} ${INSTALL_DIR}
39	install -c -m 444 ${LIBIBERTY} ${INSTALL_DIR}
40	if [ -d ${INCLUDE_INSTALL} ]; then true; \
41	else mkdir ${INCLUDE_INSTALL}; \
42	fi
43	install -c -m 444 ${.CURDIR}/libg++/g++-include/*.h ${INCLUDE_INSTALL}
44	if [ -d ${INCLUDE_INSTALL}/sys ] ; then true; \
45	else mkdir ${INCLUDE_INSTALL}/sys; \
46	fi
47	install -c -m 444 ${.CURDIR}/libg++/g++-include/sys/*.h \
48		${INCLUDE_INSTALL}/sys
49	install -c -m 444 ${.CURDIR}/libg++/src/*.h ${INCLUDE_INSTALL}
50	install -c -m 444 ${.CURDIR}/libg++/iostream/*.h ${INCLUDE_INSTALL}
51	install -c -m 444 ${.CURDIR}/libg++/g++-include/*.h ${INCLUDE_INSTALL}
52	install -c -m 444 ${.CURDIR}/libg++/_G_config.h ${INCLUDE_INSTALL}
53
54clean:
55	for i in $(DIRS); do \
56		cd ${.CURDIR}/$$i ; \
57		rm -f *.o *.a *~ core stamp*; \
58	done
59	rm -f $(BUILD_DIR)/$(TARGET_LIB)
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122