Пример makefile

# Makefile for project with 2 executable files written in Haskell

ifdef WINNT
  GHC
= ghc.exe
  EXE = exe
else
  GHC = ghc
  EXE =
endif

# List of objects for first executable
COMP_OBJ = ALArch.o \
    VLTree.o VLParser.o VLCompiler.o GenAsm.o\
    compilerMain.o

# List of objects for second executable
INTRP_OBJ
= ParsC.o \
   ALArch.o ALAsm.o ALParser.o \
   interpMain.o

# build all target
all: vlcomp.$(EXE) varun.$(EXE)

vlcomp.$(EXE): $(COMP_OBJ)
    $(GHC) --make compilerMain -o $@

varun.$(EXE): $(INTRP_OBJ)
     $(GHC) --make interpMain -o $@

# Rule how to build object file from source
%.o:%.hs
     $(GHC) -c -o $@ $<

# clean intermediate results
clean:
     rm -f *.hi *.o *.$(EXE)

Comments