We can build a real program now!
This commit is contained in:
89
util/ack/build.lua
Normal file
89
util/ack/build.lua
Normal file
@@ -0,0 +1,89 @@
|
||||
cprogram {
|
||||
name = "mktables",
|
||||
srcs = { "./mktables.c" },
|
||||
}
|
||||
|
||||
normalrule {
|
||||
name = "tables",
|
||||
outleaves = { "dmach.c", "intable.c" },
|
||||
ins = {
|
||||
":mktables",
|
||||
"lib/descr/fe",
|
||||
},
|
||||
commands = {
|
||||
"(cd %{dir} && %{abspath(ins[1])} lib)"
|
||||
}
|
||||
}
|
||||
|
||||
cprogram {
|
||||
name = "ack",
|
||||
srcs = {
|
||||
"./*.c",
|
||||
"./*.h",
|
||||
":tables",
|
||||
},
|
||||
deps = {
|
||||
"h:emheaders",
|
||||
"h:local",
|
||||
}
|
||||
}
|
||||
|
||||
--[[
|
||||
D := util/ack
|
||||
|
||||
define util-ack-makeheaders-rule
|
||||
$(eval g := $(OBJDIR)/$D/dmach.c $(OBJDIR)/$D/intable.c)
|
||||
$(wordlist 2, $(words $g), $g): $(firstword $g)
|
||||
$(firstword $g): $(util-ack-mktables)
|
||||
@echo MKTABLES
|
||||
@mkdir -p $(OBJDIR)/$D
|
||||
$(hide) cd $(OBJDIR)/$D && $(util-ack-mktables) $(INSDIR)/share
|
||||
|
||||
$(eval CLEANABLES += $g)
|
||||
endef
|
||||
|
||||
define build-ack-impl
|
||||
$(call reset)
|
||||
$(call cfile, $D/mktables.c)
|
||||
$(call cprogram, $(OBJDIR)/$D/mktables)
|
||||
$(eval util-ack-mktables := $o)
|
||||
|
||||
$(call reset)
|
||||
$(eval cflags += -I$D)
|
||||
$(call cfile, $D/list.c)
|
||||
$(call cfile, $D/data.c)
|
||||
$(call cfile, $D/main.c)
|
||||
$(call cfile, $D/scan.c)
|
||||
$(call cfile, $D/svars.c)
|
||||
$(call cfile, $D/trans.c)
|
||||
$(call cfile, $D/util.c)
|
||||
|
||||
$(call cfile, $D/rmach.c)
|
||||
$(call dependson, $(INCDIR)/em_path.h)
|
||||
|
||||
$(call cfile, $D/run.c)
|
||||
$(call cfile, $D/grows.c)
|
||||
|
||||
$(call cfile, $D/files.c)
|
||||
$(call dependson, $(INCDIR)/em_path.h)
|
||||
|
||||
$(eval $(util-ack-makeheaders-rule))
|
||||
$(call cfile, $(OBJDIR)/$D/dmach.c)
|
||||
$(call cfile, $(OBJDIR)/$D/intable.c)
|
||||
|
||||
$(call cprogram, $(BINDIR)/ack)
|
||||
$(call installto, $(INSDIR)/bin/ack)
|
||||
$(eval ACK := $o)
|
||||
|
||||
$(call reset)
|
||||
$(eval q := lib/descr/fe)
|
||||
$(call installto, $(PLATIND)/descr/fe)
|
||||
$(eval $(ACK): $o)
|
||||
|
||||
$(call reset)
|
||||
$(eval q := $D/ack.1.X)
|
||||
$(call installto, $(INSDIR)/share/man/man1/ack.1)
|
||||
endef
|
||||
|
||||
$(eval $(build-ack-impl))
|
||||
--]]
|
||||
Reference in New Issue
Block a user