# Some stuff, most likely stolen from fptools .PHONY: all boot clean depend $(DIRS) default: all TCL_REQ = -ltk8.0 -ltcl8.0 -lX11 -lm -lc # Linux # TCL_REQ = -ltk80 -ltcl80 -lX11 -lm -lc # FreeBSD TCLOBJ := $(TCLSRC)/tclhaskell.a # $(TCLSRC)/*.o DHSTOP := $(DHSTOP) ifeq ($(INCPATH),) INCPATH := $(DHSTOP) else INCPATH := $(DHSTOP):$(INCPATH) endif NETWORK := $(DHSTOP)/`uname`/network INCPATH := $(INCPATH):$(NETWORK) EXTRALD := -L$(NETWORK) -lnetwork SYSLIBS := $(SYSLIBS) -package network -package network -package unix -package mtl OBJS := $(LIBOBJS) $(DHSTOP)/DHSOptions.o $(DHSTOP)/DHSCore.o $(DHSTOP)/DIOMonad.o $(DHSTOP)/DHSURI.o $(DHSTOP)/Register.o $(DHSTOP)/Tunnel.o $(DHSTOP)/Dictionary.o $(DHSTOP)/LinkList.o $(DHSTOP)/PortListener.o $(DHSTOP)/Distributed.o # For a concurrent debugger build: #LIBOBJS := $(DHSTOP)/Distributed.a $(CDB)/ConcDebug.a $(TCLOBJ) #GHC = $(HC) -cpp $(HCFLAGS) $(EXTRAHCFLAGS) -DCONCDEBUG=1 $(SYSLIBS) -i$(INCPATH) -i$(TCLSRC) -i$(CDB) #GHCLD = $(HC) $(HCFLAGS) $(EXTRAHCFLAGS) $(SYSLIBS) -L$(XLIB) -L$(TCLLIB) -L$(TKLIB) $(TCL_REQ) # For a plain build: LIBOBJS := $(DHSTOP)/Distributed.a $(DHSTOP)/ConcurrentDebugLess.o HC ?= ghc GHC = $(HC) -cpp $(HCFLAGS) $(EXTRAHCFLAGS) $(SYSLIBS) -i$(INCPATH) GHCLD = $(HC) $(HCFLAGS) $(SYSLIBS) $(EXTRALD) SRCS = $(wildcard *.lhs) $(wildcard *.hs) (%.o): %.lhs $(GHC) -c $< -o $@ %.o: %.lhs $(GHC) -c $< -o $@ %.o: %.hs $(GHC) -c $< -o $@ # .hi is tricky, note the following no-op! %.hi: %.o; $(DHSTOP)/DIOMonad.o DIOMonad.o:: EXTRAHCFLAGS = $(HCFLAGS) -fglasgow-exts $(DHSTOP)/Distributed.a Distributed.a: $(OBJS) $(AR) r Distributed.a $? all:: boot $(DIRS) $(DIRS):: $(MAKE) -C $@ $(MFLAGS) clean:: MFLAGS=clean clean:: $(DIRS) rm -f *.o *.hi *.a .depend binclean:: MFLAGS=binclean binclean:: $(DIRS) debug:: GHC = $(HC) -cpp $(HCFLAGS) -DCONCDEBUG=1 $(SYSLIBS) -i$(INCPATH) -i$(TCLSRC) -i/home/boettch/haskell debug:: GHCLD = $(HC) $(HCFLAGS) $(SYSLIBS) -L$(XLIB) -L$(TCLLIB) -L$(TKLIB) $(TCL_REQ) debug:: LIBOBJS = /home/boettch/haskell/ConcurrentDebug.a $(TCLOBJ) debug:: MFLAGS=debug debug:: boot all depend: MFLAGS=depend depend: $(DIRS) ifneq ($(strip $(SRCS)),) $(mkdependHS) -fglasgow-exts -cpp -f .depend $(SYSLIBS) -i$(INCPATH) -X$(DHSTOP):$(DHSTOP)/`uname`/network $(foreach f,$(SRCS),`pwd`/$(f)) endif -include .depend