FPCDIR = ../fpc
GVDIR = .
PFLAGS := $(PFLAGS) -vh- -g
#-S2 -g

APIDIRS = -Fu$(FPCDIR)/api -Fu$(FPCDIR)/api/linux -Fi$(FPCDIR)/api/linux
FVDIRS = -Fi$(FPCDIR)/fv -Fu$(FPCDIR)/fv/base -Fu$(FPCDIR)/fv/dialogs
GVDIRS = -Fu$(GVDIR) -Fi$(GVDIR) -Fu$(GVDIR)/fpc -Fi$(GVDIR)/fpc -Fi$(GVDIR)/fpc/linux
SVGALIBDIRS = -Fu$(FPCDIR)/svgalib
BITMAPSDIR = $(FPCDIR)/bitmaps
BITMAPSDIRS = -Fu$(BITMAPSDIR)
## order important:
ALLDIRS = $(APIDIRS) $(GVDIRS) $(FVDIRS) $(BITMAPSDIRS) $(SVGALIBDIRS)

PPC = ppc386 $(PFLAGS) $(ALLDIRS)

%: %.pas bitmaps
	$(PPC) $<

%: %.pp bitmaps
	$(PPC) $<


## Bitmap subsystem

bitmaps: $(BITMAPSDIR)/bmp.ppu $(BITMAPSDIR)/bitmaps.ppu $(BITMAPSDIR)/colors.ppu

BITMAPSPFLAGS = -S2

$(BITMAPSDIR)/bmp.ppu: $(BITMAPSDIR)/bmp.pp $(BITMAPSDIR)/bitmaps.pp $(BITMAPSDIR)/colors.pp
	$(PPC) $(BITMAPSPFLAGS) $<

$(BITMAPSDIR)/bitmaps.ppu: $(BITMAPSDIR)/bitmaps.pp $(BITMAPSDIR)/colors.pp
	$(PPC) $(BITMAPSPFLAGS) $<

$(BITMAPSDIR)/colors.ppu: $(BITMAPSDIR)/colors.pp
	$(PPC) $(BITMAPSPFLAGS) $<

### Language scripts
$(GVDIR)/fpc/german.gvf: $(GVDIR)/gvlc $(GVDIR)/german.gvs
	$(GVDIR)/gvlc $@ $(GVDIR)/german.gvs

$(GVDIR)/fpc/english.gvf: $(GVDIR)/gvlc $(GVDIR)/english.gvs
	$(GVDIR)/gvlc $@ $(GVDIR)/english.gvs

$(GVDIR)/fpc/demoger.gvf: $(GVDIR)/gvlc $(GVDIR)/german.gvs $(GVDIR)/demoger.gvs
	$(GVDIR)/gvlc $@ $(GVDIR)/german.gvs $(GVDIR)/demoger.gvs

$(GVDIR)/fpc/demoeng.gvf: $(GVDIR)/gvlc $(GVDIR)/english.gvs $(GVDIR)/demoeng.gvs
	$(GVDIR)/gvlc $@ $(GVDIR)/english.gvs $(GVDIR)/demoeng.gvs

$(GVDIR)/fpc/exam.gvf: $(GVDIR)/gvlc $(GVDIR)/english.gvs $(GVDIR)/exam.gvs
	$(GVDIR)/gvlc $@ $(GVDIR)/english.gvs $(GVDIR)/exam.gvs

gvf-files: $(GVDIR)/fpc/german.gvf $(GVDIR)/fpc/english.gvf \
	$(GVDIR)/fpc/demoger.gvf $(GVDIR)/fpc/demoeng.gvf

### Icon conversion

%.pbm: %.asi
	@echo "P1" > $@
	@echo "16" >> $@
	@wc --lines < $*.asi >> $@
	@tr -d -c '01\n' < $*.asi | sed 's/0/0 /g;s/1/1 /g;' >> $@

icons.pbm: 
	pnmcat -white -lr -jtop icon??.pbm > icons.pbm

%.bmp: %.pbm
	@ppmtobmp -windows $*.pbm > $@

### C code...

JLIBDIR = $(FPCDIR)/jlib

###

clean:
	-rm `find . -name "*.o"`
	-rm `find . -name "*.ppu"`
	-rm `find . -name "*.o1"`
	-rm `find . -name "*.pp1"`

snapshot:
	tar cfz /scratch/gvfpc-`date +'%d-%b-%Y'`.tgz --directory=/dos/home/mkm/m --verbose \
		gvx fpc/api fpc/fv fpc/svgalib fpc/bitmaps gvfpc.txt \
		--exclude="*RCS*" --exclude="*~*" --exclude="*bak" \
		--exclude="*TAGS" --exclude="*.rws" --exclude="*.ppu" \
		--exclude="*.tpu" --exclude="*.tpw" --exclude="*.tpp" \
		--exclude="*.o" --exclude="*/gvd" --exclude="*/gvlc" \
		--exclude="*obsolete*" --exclude="*.obj" \
		--exclude="*gvx/win" --exclude="*gvx/dos" --exclude="*gvx/doc" \
		--exclude="*#*" --exclude="*.psm" --exclude="*.dsk" \
	tar cfz /scratch/gvdoc-`date +'%d-%b-%Y'`.tgz --directory=/dos/home/mkm/m --verbose \
		gvx/doc \
		--exclude="*.i.tex" --exclude="*.dvi" --exclude="*.h.tex" \
		--exclude="*.ilg" --exclude="*.toc" --exclude="*.s" \
		--exclude="*.ind" --exclude="*.aux" --exclude="*.tph" \
		--exclude="*.log" \

gv:
	cd /dos/home/mkm/m; zip /scratch/gv-`date +'%d-%b-%Y'`.zip \
		gvx/* gvx/dos/* gvx/win/* gvx/doc/* \
		-x "*RCS*" "*~*" "*bak" "*#*"\
		"*TAGS" "*.rws" "*.ppu" "*/icon*.*" \
		"*.o" "*/gvd" "*/gvlc" "*.psm" "*.dsk" "*.dpr" \
		"*.tpu" "*.tpp" "*.tpw" "*.tp" "*.tfa" "*.tdw" "*.dof" \
		"*obsolete*" 
