11# !/usr/bin/make
22
33# ------------ Compiler choice ---------
4- # --- Allow for different flags if required ---
5-
64CC ="none"
7- ARCH ="$(shell arch ) "
5+ ARCH ="$(shell uname -m ) "
86OS ="$(shell uname -s) "
97
108ifeq ($(ARCH ) , "i386")
1715
1816ifeq ($(ARCH ) , "x86_64")
1917CC =gcc
18+ ifeq ($(OS ) , "Darwin")
19+ CC =gcc -Wno-parentheses-equality -Wno-unused-value -Wno-parentheses -Wno-empty-body
20+ endif
2021endif
2122
2223ifeq ($(ARCH ) , "armv7l")
@@ -46,6 +47,18 @@ MANDIR=$(DESTDIR)/usr/share/man/man1
4647INCDIR =$(DESTDIR ) /usr/include/algol68
4748APPDIR =$(DESTDIR ) /usr/share/applications
4849
50+ # ------------ macOS values -------------
51+ ifeq ($(OS ) , "Darwin")
52+ PKGDIR =$(DESTDIR ) /usr/local/share/algol68toc
53+ DOCDIR =$(DESTDIR ) /usr/local/share/doc/algol68toc
54+ BINDIR =$(DESTDIR ) /usr/local/bin
55+ LIBDIR =$(DESTDIR ) /usr/local/lib
56+ INFODIR =$(DESTDIR ) /usr/local/share/info
57+ MANDIR =$(DESTDIR ) /usr/local/share/man/man1
58+ INCDIR =$(DESTDIR ) /usr/local/include/algol68
59+ APPDIR =$(DESTDIR ) /usr/local/share/applications
60+ endif
61+
4962# ------------- Absolute directories ------------
5063TOP: =$(shell pwd)
5164VPATH: =$(TOP ) /include
@@ -60,6 +73,7 @@ EXD=$(TOP)/examples
6073LBD =$(TOP ) /library
6174LPD =$(TOP ) /liba68prel
6275QAD =$(TOP ) /qad
76+ GCD =$(TOP ) /bdwgc
6377
6478ADIRS =a68config liba68prel src qad
6579CDIRS =library a68config liba68prel src
@@ -86,9 +100,11 @@ QADFLAGS=-v -s -uname seedfile -staredit $(QADSTAR)
86100
87101# ------------ Programs -----------
88102ALGOL =$(CTD ) /a68toc
89-
90103SHELL =/bin/sh
91104INSTALL =$(shell which install) -g root -o root
105+ ifeq ($(OS ) , "Darwin")
106+ INSTALL =$(shell which install) -g wheel -o root
107+ endif
92108INSTALLDATA =$(INSTALL ) -m 644
93109INSTALLPROG =$(INSTALL ) -m 555
94110
@@ -99,16 +115,26 @@ export
99115.PHONY : clean info uninstall
100116
101117# -----Don't remake the documentation all the time----
102- # all : c-stamp q-stamp d-stamp
103- all : c-stamp q-stamp
118+ # all : g-stamp c-stamp q-stamp d-stamp
119+ all : g-stamp c-stamp q-stamp
104120
105121remove :
106122 for d in $( ADIRS) ; do $( RM) $$ d/* .c $$ d/* .m; done
107123
108124Translate : remove nameseed
109125 -for d in $(ADIRS ) ; do $(MAKE ) -C $$ d Translate; done
110126
111- c-stamp :
127+ g-stamp : $(GCD ) /gc.a
128+ -mkdir -p include/gc
129+ cp -r $(GCD ) /include/* include/algol68/gc
130+ cp $(GCD ) /gc.a library/liba68gc.a
131+ touch g-stamp
132+
133+ $(GCD ) /gc.a :
134+ tar zxvf bdwgc.tar.gz
135+ -$(MAKE ) -C $(GCD ) -f Makefile.direct check
136+
137+ c-stamp : g-stamp
112138 -for d in $(CDIRS ) ; do $(MAKE ) -C $$ d; done
113139 touch c-stamp
114140
@@ -121,15 +147,20 @@ d-stamp :
121147 touch d-stamp
122148
123149# install : c-stamp q-stamp d-stamp
124- install : c-stamp q-stamp
150+ install : g-stamp c-stamp q-stamp
125151 $(INSTALL ) -m 755 -d $(PKGDIR )
126152 $(INSTALL ) -m 755 -d $(INCDIR )
127153 $(INSTALL ) -m 755 -d $(INCDIR ) /linux
154+ $(INSTALL ) -m 755 -d $(INCDIR ) /gc
155+ $(INSTALL ) -m 755 -d $(INCDIR ) /gc/extra
156+ $(INSTALL ) -m 755 -d $(INCDIR ) /gc/private
128157 $(INSTALL ) -m 755 -d $(BINDIR )
129158 $(INSTALL ) -m 755 -d $(LIBDIR )
130159 $(INSTALL ) -m 755 -d $(INFODIR )
131160 $(INSTALL ) -m 755 -d $(DOCDIR )
132161 $(INSTALL ) -m 755 -d $(DOCDIR ) /examples
162+ $(INSTALL ) -m 755 -d $(DOCDIR ) /examples/logic
163+ $(INSTALL ) -m 755 -d $(DOCDIR ) /examples/tests
133164 $(INSTALL ) -m 755 -d $(DOCDIR ) /pame
134165 $(INSTALL ) -m 755 -d $(APPDIR )
135166 $(INSTALL ) -m 755 -d $(MANDIR )
@@ -142,13 +173,14 @@ info :
142173uninstall :
143174 -$(RM ) $(BINDIR ) /a68toc $(BINDIR ) /resetseed $(BINDIR ) /ca
144175 -install-info --quiet --remove $(INFODIR ) /ctrans.info.gz $(INFODIR ) /dir
145- -$(RM ) -r $(PKGDIR ) $(DOCDIR )
146- -$(RM ) $(INFODIR ) /ctrans.info.gz $(LIBDIR ) /liba68.a $(LIBDIR ) /liba68s.a \
176+ -$(RM ) -rf $(PKGDIR ) $(DOCDIR ) $( INCDIR )
177+ -$(RM ) $(INFODIR ) /ctrans.info.gz $(LIBDIR ) /liba68.a $(LIBDIR ) /liba68s.a $( LIBDIR ) /liba68gc.a \
147178 $(MANDIR ) /a68toc.1.gz $(MANDIR ) /ca.1.gz
148179
149180dist-clean : clean
150- -$(RM ) -v c-stamp q-stamp d-stamp
181+ -$(RM ) -v c-stamp q-stamp d-stamp g-stamp
151182 -$(RM ) -r debian/tmp debian/algol68toc
183+ -$(RM ) -rf bdwgc
152184
153185nameseed : a68config/rctr liba68prel/rctr src/rctr qad/rctr
154186 for d in $( ADIRS) ; do cp $$ d/rctr $$ d/nameseed; done
@@ -163,14 +195,15 @@ clean:
163195 find $(TOP ) \( -name ' *~' -o -name ' *.asv' -o -name ' *##' \) \
164196 -exec $(RM ) -v ' {}' ' ;'
165197 -for d in $(ADIRS ) $(DDIRS ) library; do $(MAKE ) -C $$ d clean; done
198+ -$(MAKE ) -C $(GCD ) -f Makefile.direct clean
166199
167200realclean :
168201 find $(TOP ) \( -name ' *~' -o -name ' *.asv' -o -name ' *##' \) \
169202 -exec $(RM ) -v ' {}' ' ;'
170203 -for d in $(ADIRS ) $(DDIRS ) library; do $(MAKE ) -C $$ d realclean; done
171204
172- # Revision 1.20 2021/04/21 Neil Matthew
173- # Port to 64-bit and ARM architectures
205+ vars :
206+ echo " NOR is $( NOR ) "
174207
175208# $Log: Makefile,v $
176209# Revision 1.12 2012/01/04 17:18:45 sian
0 commit comments