📄 makefile.nhc98
字号:
include Makefile.inc
OBJDIR = $(BUILDDIR)/$(OBJ)/cpphs
CPPHS = $(DST)/cpphs$(EXE)
TARGET = $(CPPHS)
VERSION = 0.8
SRCS = CppIfdef.hs HashDefine.hs MacroPass.hs ParseLib.hs \
Position.hs ReadFirst.hs SymTab.hs Tokenise.hs \
RunCpphs.hs cpphs.hs
OBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(SRCS))
CFILES = $(patsubst %.hs, %.$C, $(SRCS))
AUX = README LICENCE* CHANGELOG cpphs.hugs \
tests/[A-BD-Z]* tests/[a-np-z]* \
docs/[a-z]*
HC = $(LOCAL)nhc98 # can be overridden by caller HC=...
HFLAGS = $(shell echo $(BUILDOPTS)) #-$(CFG)
ifeq "nhc98" "$(findstring nhc98, ${HC})"
HEAP = -H4M -package base
endif
ifeq "ghc" "$(findstring ghc, ${HC})"
HFLAGS += $(shell ${LOCAL}fixghc ${GHCSYM} -package base)
endif
ifeq "hbc" "$(findstring hbc, ${HC})"
hbc: CppIfdef.hs MacroPass.hs
sed -e 's/System.IO.Unsafe/IOExts/' CppIfdef.hs >hbc
mv hbc CppIfdef.hs
sed -e 's/System.IO.Unsafe/IOExts/' MacroPass.hs >hbc
cp -a hbc MacroPass.hs
all: hbc
endif
all: $(TARGET)
install: $(TARGET)
cfiles: cleanC $(CFILES)
fromC: $(OBJDIR)
$(LOCAL)/nhc98 -c -d $(OBJDIR) $(CFILES)
cd $(OBJDIR); $(LOCAL)nhc98 -H8M -o $(TARGET) *.$O
$(STRIP) $(TARGET)
clean:
rm -f $(OBJS)
rm -f *.hi
cleanC: clean
rm -f *.hc *.c
realclean: cleanC
rm -f *.raw *.html haddock.css haskell_icon.gif
rm -f $(TARGET)
package:
tar cf tmp.tar $(SRCS) $(AUX)
mkdir cpphs-$(VERSION)
cd cpphs-$(VERSION); tar xf ../tmp.tar
tar zcf cpphs-$(VERSION).tar.gz cpphs-$(VERSION)
zip -r cpphs-$(VERSION).zip cpphs-$(VERSION)
rm -r tmp.tar cpphs-$(VERSION)
haddock: $(SRCS)
haddock -h $(SRCS)
$(CPPHS): $(OBJDIR) $(OBJS)
$(HC) $(HFLAGS) $(HEAP) -o $@ $(OBJS)
$(STRIP) $@
$(OBJDIR):
mkdir -p $(OBJDIR) || $(TRUE)
$(OBJS): $(OBJDIR)/%.$O : %.hs
$(HC) $(HFLAGS) -c -o $@ $<
$(CFILES): %.$C : %.hs
$(HC) $(HFLAGS) -C $<
# dependencies generated by hmake -Md:
${OBJDIR}/MacroPass.o: ${OBJDIR}/HashDefine.o ${OBJDIR}/Tokenise.o \
${OBJDIR}/SymTab.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}/RunCpphs.o: ${OBJDIR}/CppIfdef.o ${OBJDIR}/Position.o \
${OBJDIR}/MacroPass.o
${OBJDIR}/cpphs.o: ${OBJDIR}/RunCpphs.o
# C-files dependencies. -- (needs updating)
MacroPass.hc: HashDefine.hc Tokenise.hc SymTab.hc
HashDefine.hc:
Tokenise.hc: HashDefine.hc
ReadFirst.hc: Position.hc SymTab.hc
Position.hc:
ParseLib.hc:
SymTab.hc:
CppIfdef.hc: SymTab.hc ParseLib.hc Position.hc ReadFirst.hc Tokenise.hc
RunCpphs.hc: CppIfdef.hc Position.hc MacroPass.hc
cpphs.hc: RunCpphs.hc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -