SHELL = /bin/sh HC = ghc HCFLAGS = -O -Wall # installation directories (cf Locations.hs and post-upload-hook) HACKAGE_ROOT = /srv/www/hackage.haskell.org CGIDIR = $(HACKAGE_ROOT)/cgi-bin/hackage-scripts BINDIR = $(HACKAGE_ROOT)/public_html/packages/bin ARCHIVEDIR = $(HACKAGE_ROOT)/public_html/packages/archive GLOBAL_CGI_PROGS = check-pkg package USER_CGI_PROGS = upload-pkg AUX_PROGS = pkg-list recent-adds rss-feed \ latest-versions latest-doc-versions splitDistroMap SCRIPTS = post-upload-hook FILES = preferred-versions CGI_PROGS = $(GLOBAL_CGI_PROGS) $(USER_CGI_PROGS) GEN_PROGS = $(CGI_PROGS) $(AUX_PROGS) PROGS = $(GEN_PROGS) $(SCRIPTS) .SUFFIXES: %.hs: %.x alex -g $*.x %.hs: %.y happy -agc $*.y all: $(GEN_PROGS) install: $(PROGS) $(FILES) cp $(GLOBAL_CGI_PROGS) $(CGIDIR) cp $(USER_CGI_PROGS) $(CGIDIR)/protected cp $(AUX_PROGS) $(SCRIPTS) $(BINDIR) cp $(FILES) $(ARCHIVEDIR) # CGI scripts check-pkg: check-pkg.hs HaddockLex.hs HaddockParse.hs HaddockHtml.hs HackagePage.hs Locations.hs ModuleForest.hs PackagePage.hs Unpack.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ check-pkg.hs strip $@ upload-pkg: upload-pkg.hs HackagePage.hs Locations.hs Unpack.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ upload-pkg.hs strip $@ package: package.hs HaddockLex.hs HaddockParse.hs HaddockHtml.hs HackagePage.hs Locations.hs ModuleForest.hs PackagePage.hs Util.hs TagMap.hs DistroInfo.hs $(HC) --make $(HCFLAGS) -o $@ package.hs strip $@ search: search.hs SearchAlgorithm.hs SearchMatchingFunctions.hs SearchUtils.hs SearchHackage.hs SearchTypes.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ search.hs strip $@ # Auxiliary programs pkg-list: pkg-list.hs HackagePage.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ pkg-list.hs strip $@ recent-adds: recent-adds.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ recent-adds.hs strip $@ rss-feed: rss-feed.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ rss-feed.hs strip $@ latest-versions: latest-versions.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ latest-versions.hs strip $@ splitDistroMap: splitDistroMap.hs DistroInfo.hs Locations.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ splitDistroMap.hs strip $@ latest-doc-versions: latest-doc-versions.hs PublicFile.hs Util.hs $(HC) --make $(HCFLAGS) -o $@ latest-doc-versions.hs strip $@ clean: $(RM) *.o *.hi $(RM) HaddockLex.hs HaddockParse.hs $(RM) $(GEN_PROGS)