SHELL = /bin/sh

CFLAGS = -Os -Wall -Wextra
#CFLAGS += -std=c99
#CPPFLAGS = -D_FILE_OFFSET_BITS=64
#CPPFLAGS += -DUPLOAD=\"/srv/www/neu\"
LDFLAGS = -s

GNATMAKE = gnatmake
GNATMAKEFLAGS = -O2

AWK = awk
GZIP = gzip

GOPHERSTIL = GopherStil.css
#GOPHERSTIL = GopherStil-gruen.css

all: var.cgi hochladen.cgi Sprache.cgi beispiel_c.cgi gopherweb.cgi

native:
	$(MAKE) CFLAGS="-O2 -march=native -mtune=native"

var.cgi: var.c
	$(CC) $(CPPFLAGS) $(CFLAGS) var.c $(LDFLAGS) -o $@

hochladen.cgi: hochladen.c ../akfnetz.h ../FehlerStil.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -I.. hochladen.c $(LDFLAGS) -o $@

gopherweb.cgi: gopherweb.c GopherStil.h ../akfnetz.h ../gophertyp.h ../version.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -I.. gopherweb.c -L.. \
	-lakfnetz $(LDFLAGS) -o $@

beispiel_c.cgi: beispiel_c.c ../akfnetz.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -I.. beispiel_c.c \
	  -L.. -lakfnetz $(LDFLAGS) -o $@

beispiel_ada.cgi: beispiel_ada.adb cgi.ads cgi.adb
	-$(GNATMAKE) $(GNATMAKEFLAGS) beispiel_ada.adb -o $@ -bargs -static

Sprache.cgi: Sprache.c ../Sprachauswahl.c ../akfnetz.h
	$(CC) $(CPPFLAGS) $(CFLAGS) -I.. Sprache.c ../Sprachauswahl.c \
	  $(LDFLAGS) -o $@

../FehlerStil.h: ../FehlerStil.css ../text2c.awk
	{ cd ..; \
	$(AWK) -f text2c.awk FehlerStil.css > FehlerStil.h; }

GopherStil.h: $(GOPHERSTIL) ../text2c.awk
	$(AWK) -f ../text2c.awk -v name=GopherStil $(GOPHERSTIL) >$@

clean:
	rm -f *~
	rm -f *.o
	rm -f *.ali
	rm -f GopherStil.h
	rm -f var.cgi hochladen.cgi Sprache.cgi gopherweb.cgi
	rm -f beispiel_c.cgi beispiel_ada.cgi
	rm -f Sprache/index.??.xhtml.gz

distclean: clean

musl:
	$(MAKE) CC=musl-gcc LDFLAGS="-static -s" \
	  var.cgi hochladen.cgi Sprache.cgi gopherweb.cgi
