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

📄 makefile~

📁 Haskell是一种程序语言。特别的
💻
字号:
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 SymTab.hs \
	  Output.hs Order.hs ListUtil.hs Getmodtime.hs \
          MkProg.hs IsPrefixOf.hs Compiler.hs PreProcessor.hs \
	  PackageConfig.hs Config.hs RunAndReadStdout.hs
CPPSRCS = Argv.hs Graph.hs GetDep.hs ParseLib.hs Compat.hs Imports.hs \
	  Platform.hs
CFGSRCS = RunAndReadStdout.hs Config.hs Compiler.hs Platform.hs

OBJS    = $(patsubst %.hs, $(OBJDIR)/%.$O, $(SRCS))
CPPOBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(CPPSRCS))
CFGOBJS = $(patsubst %.hs, $(OBJDIR)/%.$O, $(CFGSRCS))
CFILES    = $(patsubst %.hs, %.$C, $(SRCS))
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=...
HFLAGS = $(shell echo $(BUILDOPTS)) #-$(CFG)

ifeq "nhc98" "$(findstring nhc98, ${HC})"
HEAP = -H4M
endif
ifeq "ghc" "$(findstring ghc, ${HC})"
HFLAGS += $(shell ${LOCAL}fixghc ${GHCSYM} -package lang)
endif

all: $(TARGETS)
install: $(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 $(TARGETS)
package:
	tar zcvf hmake.tar.gz $(SRCS) $(GCSRCS) $(CPPSRCS) Older.hs MkConfig.hs $(AUX)


$(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) $@

$(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 $<


# dependencies generated by hmake -Md:
${OBJDIR}/Output.$O:	${OBJDIR}/ListUtil.$O ${OBJDIR}/FileName.$O \
			${OBJDIR}/Argv.$O ${OBJDIR}/PreProcessor.$O \
			${OBJDIR}/Config.$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}/ParseLib.$O:	
${OBJDIR}/SymTab.$O:	
${OBJDIR}/Imports.$O:	${OBJDIR}/SymTab.$O ${OBJDIR}/ParseLib.$O \
			${OBJDIR}/ListUtil.$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}/Config.$O:	${OBJDIR}/Compiler.$O ${OBJDIR}/Platform.$O
${OBJDIR}/Compiler.$O:	
${OBJDIR}/ListUtil.$O:	
${OBJDIR}/Argv.$O:	${OBJDIR}/ListUtil.$O ${OBJDIR}/Compiler.$O \
			${OBJDIR}/Config.$O ${OBJDIR}/PackageConfig.$O
${OBJDIR}/PackageConfig.$O:	${OBJDIR}/RunAndReadStdout.$O \
				${OBJDIR}/Compiler.$O ${OBJDIR}/Config.$O
${OBJDIR}/RunAndReadStdout.$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}/Platform.$O
${OBJDIR}/Older.$O:	

ifeq "hbc" "$(HC)"
${OBJDIR}/Argv.$O:	${OBJDIR}/IsPrefixOf.$O
endif


#$(OBJDIR)/Cpp.$O: Cpp.gc
#$(OBJDIR)/Env.$O: Env.hs $(OBJDIR)/Compat.$O $(OBJDIR)/ListUtil.$O $(OBJDIR)/Unlit.$O $(OBJDIR)/Utils.$O


# C-files dependencies.		-- (needs updating)
Argv.$C:    ListUtil.$C Compiler.$C Config.$C PackageConfig.$C Platform.$C
Compat.$C:  ListUtil.$C QSort.$C
Config.$C:  Compiler.$C Platform.$C
FileName.$C:Argv.$C
GetDep.$C:  Getmodtime.$C Imports.$C FileName.$C Unlit.$C Argv.$C
Graph.$C:   Compat.$C ListUtil.$C
Imports.$C: SymTab.$C ParseLib.$C ListUtil.$C
MkProg.$C:  Argv.$C GetDep.$C Getmodtime.$C ListUtil.$C Order.$C Output.$C
MkConfig.$C:Compiler.$C Config.$C Platform.$C
Order.$C:   Compat.$C Graph.$C ListUtil.$C Tsort.$C Utils.$C
Output.$C:  ListUtil.$C FileName.$C Argv.$C PreProcessor.$C Config.$C
Tsort.$C:   Compat.$C
Utils.$C:   Compat.$C ListUtil.$C
PackageConfig.$C:	Compiler.$C Config.$C RunAndReadStdout.$C Platform.$C
RunAndReadStdout.$C:	Platform.$C

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -