⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile.nhc98

📁 Haskell
💻 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 + -