📄 makefile
字号:
include Makefile.inc
OBJDIR = $(BUILDDIR)/$(OBJ)/hmake
MKPROG = $(DST)/MkProg$(EXE)
OLDER = $(DST)/Older$(EXE)
MKCONFIG = $(DST)/MkConfig$(EXE)
TARGETS = $(MKPROG) $(OLDER) $(MKCONFIG)
SRCS = QSort.hs Unlit.hs Utils.hs Tsort.hs FileName.hs \
Output.hs Order.hs ListUtil.hs Getmodtime.hs \
MkProg.hs Compiler.hs PreProcessor.hs \
PackageConfig.hs RunAndReadStdout.hs Argv.hs
CPPHSSRCS = CppIfdef.hs ParseLib.hs Position.hs ReadFirst.hs Tokenise.hs \
SymTab.hs HashDefine.hs
CPPSRCS = Graph.hs GetDep.hs Compat.hs Imports.hs Platform.hs Config.hs
CFGSRCS = RunAndReadStdout.hs Config.hs Compiler.hs Platform.hs
OBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(SRCS) $(CPPHSSRCS))
CPPOBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(CPPSRCS))
RAWCPP = $(patsubst %.hs, %.raw, $(SRCS))
CFGOBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(CFGSRCS))
CFILES = $(patsubst %.hs, %.$C, $(SRCS) $(CPPHSSRCS))
CPPCFILES = $(patsubst %.hs, %.$C, $(CPPSRCS))
CFGCFILES = $(patsubst %.hs, %.$C, $(CFGSRCS))
AUX = Makefile* BuildNew* HISTORY README* Summary TODO nhcmakeR cfiles \
hmake hmake.1
HC = $(LOCAL)nhc98 # can be overridden by caller HC=...
BUILDCOMP = nhc # override this too if you override HC
HFLAGS = $(shell echo $(BUILDOPTS)) #-$(CFG)
ifeq "nhc" "$(BUILDCOMP)"
HEAP = -H4M
endif
ifeq "ghc" "$(BUILDCOMP)"
HFLAGS += $(shell ${LOCAL}fixghc ${GHCSYM} -package lang)
endif
ifeq "hbc" "$(BUILDCOMP)"
hbc: CppIfdef.hs
sed -e 's/System.IO.Unsafe/IOExts/' CppIfdef.hs >hbc
cp -a hbc CppIfdef.hs
all: hbc
endif
all: $(TARGETS)
config:
sh $(BUILDDIR)/hmake3.config
cfiles: cleanC $(CFILES) $(CPPCFILES) Older.$C MkConfig.$C
fromC: $(OBJDIR)
$(HC) $(HFLAGS) -H4M -o $(MKPROG) -d $(OBJDIR) $(CFILES) $(CPPCFILES)
$(HC) $(HFLAGS) -o $(OLDER) -d $(OBJDIR) Older.$C
$(HC) $(HFLAGS) -o $(MKCONFIG) -d $(OBJDIR) MkConfig.$C $(CFGCFILES)
$(STRIP) $(MKPROG) $(OLDER) $(MKCONFIG)
clean:
rm -f $(OBJS) $(CPPOBJS) $(OBJDIR)/Older.$O $(OBJDIR)/MkConfig.$O
rm -f *.hi
cleanC: clean
rm -f *.hc *.c
realclean: cleanC
rm -f *.raw *.html haddock.css haskell_icon.gif
rm -f $(TARGETS)
#package:
# tar zcvf hmake.tar.gz $(SRCS) $(GCSRCS) $(CPPSRCS) Older.hs MkConfig.hs $(AUX)
haddock: $(RAWCPP)
haddock -h *.raw
rm *.raw
$(MKPROG): $(OBJDIR) $(OBJS) $(CPPOBJS)
$(HC) $(HFLAGS) $(HEAP) -o $@ $(OBJS) $(CPPOBJS)
$(STRIP) $@
$(OLDER): $(OBJDIR) $(OBJDIR)/Older.$O
$(HC) $(HFLAGS) -o $@ $(OBJDIR)/Older.$O
$(STRIP) $@
$(MKCONFIG): $(OBJDIR) $(OBJDIR)/MkConfig.$O $(CFGOBJS)
$(HC) $(HFLAGS) -o $@ $(OBJDIR)/MkConfig.$O $(CFGOBJS)
$(STRIP) $@
%.raw:
cpp -P -traditional $(patsubst %.raw, %.hs, $@) > $@
$(OBJDIR):
mkdir -p $(OBJDIR) || $(TRUE)
$(OBJS): $(OBJDIR)/%.$O : %.hs
$(HC) $(HFLAGS) -c -o $@ $<
$(CPPOBJS) $(OBJDIR)/Older.$O $(OBJDIR)/MkConfig.$O: $(OBJDIR)/%.$O : %.hs
$(HC) $(HFLAGS) -c -cpp -o $@ $<
$(CFILES): %.$C : %.hs
$(HC) $(HFLAGS) -C $<
$(CPPCFILES) Older.$C MkConfig.$C: %.$C : %.hs
$(HC) $(HFLAGS) -C -cpp $<
# copy some necessary files from cpphs to here.
$(CPPHSSRCS): % : ../cpphs/%
cp ../cpphs/$@ .
# dependencies generated by hmake -Md:
${OBJDIR}/Output.$O: ${OBJDIR}/ListUtil.$O ${OBJDIR}/FileName.$O \
${OBJDIR}/Argv.$O ${OBJDIR}/PreProcessor.$O \
${OBJDIR}/Config.$O ${OBJDIR}/RunAndReadStdout.$O
${OBJDIR}/Utils.$O: ${OBJDIR}/Compat.$O ${OBJDIR}/ListUtil.$O
${OBJDIR}/Tsort.$O: ${OBJDIR}/Compat.$O
${OBJDIR}/Graph.$O: ${OBJDIR}/Compat.$O ${OBJDIR}/ListUtil.$O
${OBJDIR}/QSort.$O:
${OBJDIR}/Compat.$O: ${OBJDIR}/ListUtil.$O ${OBJDIR}/QSort.$O
${OBJDIR}/Order.$O: ${OBJDIR}/Compat.$O ${OBJDIR}/Graph.$O \
${OBJDIR}/ListUtil.$O ${OBJDIR}/Tsort.$O \
${OBJDIR}/Utils.$O
${OBJDIR}/PreProcessor.$O: ${OBJDIR}/Argv.$O ${OBJDIR}/Compiler.$O \
${OBJDIR}/Config.$O ${OBJDIR}/Unlit.$O
${OBJDIR}/Unlit.$O:
${OBJDIR}/FileName.$O: ${OBJDIR}/Argv.$O
${OBJDIR}/HashDefine.$O:
${OBJDIR}/Tokenise.$O: ${OBJDIR}/HashDefine.$O
${OBJDIR}/ReadFirst.$O: ${OBJDIR}/Position.$O ${OBJDIR}/SymTab.$O
${OBJDIR}/Position.$O:
${OBJDIR}/ParseLib.$O:
${OBJDIR}/SymTab.$O:
${OBJDIR}/CppIfdef.$O: ${OBJDIR}/SymTab.$O ${OBJDIR}/ParseLib.$O \
${OBJDIR}/Position.$O ${OBJDIR}/ReadFirst.$O \
${OBJDIR}/Tokenise.$O
${OBJDIR}/Imports.$O: ${OBJDIR}/ListUtil.$O ${OBJDIR}/CppIfdef.$O
${OBJDIR}/Getmodtime.$O:
${OBJDIR}/GetDep.$O: ${OBJDIR}/Getmodtime.$O ${OBJDIR}/Imports.$O \
${OBJDIR}/FileName.$O ${OBJDIR}/Unlit.$O \
${OBJDIR}/Argv.$O ${OBJDIR}/PreProcessor.$O \
${OBJDIR}/Config.$O
${OBJDIR}/RunAndReadStdout.$O: ${OBJDIR}/Platform.$O
${OBJDIR}/PackageConfig.$O: ${OBJDIR}/Config.$O ${OBJDIR}/Compiler.$O \
${OBJDIR}/Platform.$O ${OBJDIR}/RunAndReadStdout.$O
${OBJDIR}/Platform.$O:
${OBJDIR}/Config.$O: ${OBJDIR}/Compiler.$O ${OBJDIR}/Platform.$O \
${OBJDIR}/RunAndReadStdout.$O
${OBJDIR}/Compiler.$O:
${OBJDIR}/ListUtil.$O:
${OBJDIR}/Argv.$O: ${OBJDIR}/ListUtil.$O ${OBJDIR}/Compiler.$O \
${OBJDIR}/Config.$O ${OBJDIR}/PackageConfig.$O \
${OBJDIR}/Platform.$O
${OBJDIR}/MkProg.$O: ${OBJDIR}/Argv.$O ${OBJDIR}/GetDep.$O \
${OBJDIR}/Getmodtime.$O ${OBJDIR}/ListUtil.$O \
${OBJDIR}/Order.$O ${OBJDIR}/Output.$O
${OBJDIR}/MkConfig.$O: ${OBJDIR}/Compiler.$O ${OBJDIR}/Config.$O
${OBJDIR}/Older.$O:
# C-files dependencies.
MkConfig.$C: Compiler.$C Config.$C
Output.$C: ListUtil.$C FileName.$C Argv.$C PreProcessor.$C Config.$C \
RunAndReadStdout.$C
Utils.$C: Compat.$C ListUtil.$C
Tsort.$C: Compat.$C
Graph.$C: Compat.$C ListUtil.$C
QSort.$C:
Compat.$C: ListUtil.$C QSort.$C
Order.$C: Compat.$C Graph.$C ListUtil.$C Tsort.$C Utils.$C
PreProcessor.$C: Argv.$C Compiler.$C Config.$C Unlit.$C
Unlit.$C:
FileName.$C: Argv.$C
HashDefine.$C:
Tokenise.$C: HashDefine.$C
ReadFirst.$C: Position.$C SymTab.$C
Position.$C:
ParseLib.$C:
SymTab.$C:
CppIfdef.$C: SymTab.$C ParseLib.$C Position.$C ReadFirst.$C Tokenise.$C
Imports.$C: ListUtil.$C CppIfdef.$C
Getmodtime.$C:
GetDep.$C: Getmodtime.$C Imports.$C FileName.$C Unlit.$C Argv.$C \
PreProcessor.$C Config.$C
RunAndReadStdout.$C: Platform.$C
PackageConfig.$C: Config.$C Compiler.$C Platform.$C RunAndReadStdout.$C
Platform.$C:
Config.$C: Compiler.$C Platform.$C RunAndReadStdout.$C
Compiler.$C:
ListUtil.$C:
Argv.$C: ListUtil.$C Compiler.$C Config.$C PackageConfig.$C Platform.$C
MkProg.$C: Argv.$C GetDep.$C Getmodtime.$C ListUtil.$C Order.$C Output.$C
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -