Top, topgen, aelflod. Moved the libraries back into the platform-specific
directories --- wrangling descr files was too hard. C programs can be built for cpm, pc86, linux386, linux68k! --HG-- branch : dtrg-buildsystem rename : util/ack/build.mk => util/led/build.mk rename : util/LLgen/build.mk => util/topgen/build.mk
This commit is contained in:
parent
442306d557
commit
07453d184a
4
Makefile
4
Makefile
|
@ -50,15 +50,17 @@ include util/opt/build.mk
|
||||||
include util/ncgg/build.mk
|
include util/ncgg/build.mk
|
||||||
include util/arch/build.mk
|
include util/arch/build.mk
|
||||||
include util/misc/build.mk
|
include util/misc/build.mk
|
||||||
|
include util/led/build.mk
|
||||||
|
include util/topgen/build.mk
|
||||||
|
|
||||||
include lang/cem/build.mk
|
include lang/cem/build.mk
|
||||||
|
|
||||||
include mach/proto/as/build.mk
|
include mach/proto/as/build.mk
|
||||||
include mach/proto/ncg/build.mk
|
include mach/proto/ncg/build.mk
|
||||||
|
include mach/proto/top/build.mk
|
||||||
|
|
||||||
include plat/linux/liblinux/build.mk
|
include plat/linux/liblinux/build.mk
|
||||||
|
|
||||||
include mach/build.mk
|
|
||||||
include mach/i80/build.mk
|
include mach/i80/build.mk
|
||||||
include mach/i386/build.mk
|
include mach/i386/build.mk
|
||||||
include mach/i86/build.mk
|
include mach/i86/build.mk
|
||||||
|
|
|
@ -254,6 +254,14 @@ $(call ackfile, lang/cem/libcc.ansi/time/misc.c)
|
||||||
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libc.a)
|
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libc.a)
|
||||||
$(call installto, $(PLATIND)/$(PLATFORM)/libc.a)
|
$(call installto, $(PLATIND)/$(PLATFORM)/libc.a)
|
||||||
|
|
||||||
|
# CRT
|
||||||
|
|
||||||
|
$(call reset)
|
||||||
|
$(eval objdir := $(PLATFORM))
|
||||||
|
$(eval ackflags += -Ih)
|
||||||
|
$(call ackfile, lang/cem/libcc.ansi/head_ac.e)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/c-ansi.o)
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
build-runtime-libcc-ansi = $(eval $(build-runtime-libcc-ansi-impl))
|
build-runtime-libcc-ansi = $(eval $(build-runtime-libcc-ansi-impl))
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
define build-architecture-impl
|
|
||||||
$(eval ARCHITECTURE_$(ARCH) := \
|
|
||||||
$(PLATDEP)/$(ARCH)/as \
|
|
||||||
$(PLATDEP)/$(ARCH)/ncg)
|
|
||||||
|
|
||||||
$(eval PLATFORM := $(ARCH))
|
|
||||||
$(call build-as)
|
|
||||||
$(call build-ncg)
|
|
||||||
endef
|
|
||||||
|
|
||||||
build-architecture = $(eval $(build-architecture-impl))
|
|
||||||
|
|
|
@ -1,8 +1,53 @@
|
||||||
ARCH := i386
|
arch-libem-i386 = \
|
||||||
OPTIMISATION := -O
|
adi.s \
|
||||||
|
and.s \
|
||||||
|
blm.s \
|
||||||
|
cii.s \
|
||||||
|
cms.s \
|
||||||
|
com.s \
|
||||||
|
csa4.s \
|
||||||
|
csb4.s \
|
||||||
|
cuu.s \
|
||||||
|
dup.s \
|
||||||
|
dvi.s \
|
||||||
|
dvu.s \
|
||||||
|
error.s \
|
||||||
|
exg.s \
|
||||||
|
fp8087.s \
|
||||||
|
fat.s \
|
||||||
|
gto.s \
|
||||||
|
iaar.s \
|
||||||
|
ilar.s \
|
||||||
|
inn.s \
|
||||||
|
ior.s \
|
||||||
|
isar.s \
|
||||||
|
lar4.s \
|
||||||
|
loi.s \
|
||||||
|
mli.s \
|
||||||
|
mon.s \
|
||||||
|
ngi.s \
|
||||||
|
nop.s \
|
||||||
|
print.s \
|
||||||
|
rck.s \
|
||||||
|
rmi.s \
|
||||||
|
rmu.s \
|
||||||
|
rol.s \
|
||||||
|
ror.s \
|
||||||
|
sar4.s \
|
||||||
|
sbi.s \
|
||||||
|
set.s \
|
||||||
|
sli.s \
|
||||||
|
sri.s \
|
||||||
|
sti.s \
|
||||||
|
strhp.s \
|
||||||
|
trp.s \
|
||||||
|
unknown.s \
|
||||||
|
xor.s
|
||||||
|
|
||||||
D := mach/i386
|
arch-libend-i386 = \
|
||||||
|
edata.s \
|
||||||
$(eval $(call build-architecture))
|
em_end.s \
|
||||||
|
end.s \
|
||||||
|
etext.s
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,47 @@
|
||||||
ARCH := i80
|
arch-libem-i80 = \
|
||||||
OPTIMISATION := -O
|
aar2.s \
|
||||||
|
adi4.s \
|
||||||
|
and.s \
|
||||||
|
blm.s \
|
||||||
|
cii.s \
|
||||||
|
cmi4.s \
|
||||||
|
cms.s \
|
||||||
|
com.s \
|
||||||
|
csa.s \
|
||||||
|
csb.s \
|
||||||
|
dup.s \
|
||||||
|
dvi2.s \
|
||||||
|
exg.s \
|
||||||
|
flp.s \
|
||||||
|
inn.s \
|
||||||
|
ior.s \
|
||||||
|
lar2.s \
|
||||||
|
mli2.s \
|
||||||
|
mli4.s \
|
||||||
|
mlu2.s \
|
||||||
|
ngi4.s \
|
||||||
|
nop.s \
|
||||||
|
rol4.s \
|
||||||
|
ror4.s \
|
||||||
|
sar2.s \
|
||||||
|
sbi4.s \
|
||||||
|
set.s \
|
||||||
|
set2.s \
|
||||||
|
sli2.s \
|
||||||
|
sli4.s \
|
||||||
|
sri2.s \
|
||||||
|
sri4.s \
|
||||||
|
xor.s \
|
||||||
|
loi.s \
|
||||||
|
sti.s \
|
||||||
|
dvi4.s \
|
||||||
|
rck.s
|
||||||
|
|
||||||
D := mach/i80
|
arch-libend-i80 = \
|
||||||
|
edata.s \
|
||||||
$(eval $(call build-architecture))
|
em_end.s \
|
||||||
|
end.s \
|
||||||
|
etext.s
|
||||||
|
|
||||||
|
arch-top-i80 = yes
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,68 @@
|
||||||
ARCH := i86
|
arch-libem-i86 := \
|
||||||
OPTIMISATION := -O
|
adi.s \
|
||||||
|
and.s \
|
||||||
|
cii.s \
|
||||||
|
cms.s \
|
||||||
|
cmi4.s \
|
||||||
|
cmu4.s \
|
||||||
|
com.s \
|
||||||
|
csa2.s \
|
||||||
|
csb2.s \
|
||||||
|
csa4.s \
|
||||||
|
csb4.s \
|
||||||
|
cuu.s \
|
||||||
|
dup.s \
|
||||||
|
dvi.s \
|
||||||
|
dvi4.s \
|
||||||
|
dvu.s \
|
||||||
|
dvu4.s \
|
||||||
|
exg.s \
|
||||||
|
fp8087.s \
|
||||||
|
gto.s \
|
||||||
|
iaar.s \
|
||||||
|
ilar.s \
|
||||||
|
inn.s \
|
||||||
|
ior.s \
|
||||||
|
isar.s \
|
||||||
|
lar2.s \
|
||||||
|
loi.s \
|
||||||
|
mli.s \
|
||||||
|
mli4.s \
|
||||||
|
mon.s \
|
||||||
|
ngi.s \
|
||||||
|
nop.s \
|
||||||
|
rck.s \
|
||||||
|
rmi.s \
|
||||||
|
rmi4.s \
|
||||||
|
rmu.s \
|
||||||
|
rmu4.s \
|
||||||
|
rol.s \
|
||||||
|
ror.s \
|
||||||
|
sar2.s \
|
||||||
|
sbi.s \
|
||||||
|
set.s \
|
||||||
|
sli.s \
|
||||||
|
sri.s \
|
||||||
|
sti.s \
|
||||||
|
strhp.s \
|
||||||
|
xor.s \
|
||||||
|
error.s \
|
||||||
|
unknown.s \
|
||||||
|
fat.s \
|
||||||
|
trp.s \
|
||||||
|
print.s \
|
||||||
|
ret6.s \
|
||||||
|
ret8.s \
|
||||||
|
lfr6.s \
|
||||||
|
lfr8.s \
|
||||||
|
retarea.s \
|
||||||
|
blm.s \
|
||||||
|
return.s
|
||||||
|
|
||||||
D := mach/i86
|
arch-libend-i86 = \
|
||||||
|
edata.s \
|
||||||
$(eval $(call build-architecture))
|
em_end.s \
|
||||||
|
end.s \
|
||||||
|
etext.s
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,33 @@
|
||||||
ARCH := m68020
|
arch-libem-m68020 = \
|
||||||
OPTIMISATION := -O6
|
fp68881.s \
|
||||||
|
aar.s \
|
||||||
|
lar.s \
|
||||||
|
sar.s \
|
||||||
|
csa.s \
|
||||||
|
csb.s \
|
||||||
|
shp.s \
|
||||||
|
set.s \
|
||||||
|
inn.s \
|
||||||
|
fat.s \
|
||||||
|
trp.s \
|
||||||
|
trpstr.c \
|
||||||
|
mon.s \
|
||||||
|
nop.s \
|
||||||
|
dia.s \
|
||||||
|
cii.s \
|
||||||
|
cuu.s \
|
||||||
|
cmi.s \
|
||||||
|
cms.s \
|
||||||
|
cmu.s \
|
||||||
|
cvf.s \
|
||||||
|
exg.s \
|
||||||
|
los.s \
|
||||||
|
sts.s
|
||||||
|
|
||||||
D := mach/m68020
|
arch-libend-m68020 = \
|
||||||
|
edata.s \
|
||||||
$(eval $(call build-architecture))
|
em_end.s \
|
||||||
|
end.s \
|
||||||
|
etext.s
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
ARCH := powerpc
|
|
||||||
OPTIMISATION := -O
|
|
||||||
|
|
||||||
D := mach/powerpc
|
|
||||||
|
|
||||||
$(eval $(call build-architecture))
|
|
||||||
|
|
||||||
|
|
|
@ -35,8 +35,8 @@ $(OBJDIR)/$D/preprocessed-comm2.y: mach/proto/as/comm2.y $(CPPANSI)
|
||||||
mach/proto/as/comm2.y > $$@
|
mach/proto/as/comm2.y > $$@
|
||||||
|
|
||||||
$(call file, $(LIBOBJECT))
|
$(call file, $(LIBOBJECT))
|
||||||
$(call cprogram, $(BINDIR)/$(ARCH)/as)
|
$(call cprogram, $(BINDIR)/$(PLATFORM)/as)
|
||||||
$(call installto, $(PLATDEP)/$(ARCH)/as)
|
$(call installto, $(PLATDEP)/$(PLATFORM)/as)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
build-as = $(eval $(build-as-impl))
|
build-as = $(eval $(build-as-impl))
|
||||||
|
|
|
@ -37,8 +37,8 @@ $(call cfile, $(OBJDIR)/$D/tables.c)
|
||||||
$(call file, $(LIBEM_DATA))
|
$(call file, $(LIBEM_DATA))
|
||||||
$(call file, $(LIBFLT_ARITH))
|
$(call file, $(LIBFLT_ARITH))
|
||||||
|
|
||||||
$(call cprogram, $(BINDIR)/$(ARCH)/ncg)
|
$(call cprogram, $(BINDIR)/$(PLATFORM)/ncg)
|
||||||
$(call installto, $(PLATDEP)/$(ARCH)/ncg)
|
$(call installto, $(PLATDEP)/$(PLATFORM)/ncg)
|
||||||
|
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
15
mach/proto/top/build.mk
Normal file
15
mach/proto/top/build.mk
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
define build-top-impl
|
||||||
|
$(call reset)
|
||||||
|
$(eval cflags += -I$(OBJDIR)/$(PLATFORM)/top)
|
||||||
|
|
||||||
|
$(call cfile, mach/proto/top/queue.c)
|
||||||
|
$(call cfile, mach/proto/top/top.c)
|
||||||
|
$(eval $q: $(OBJDIR)/$(PLATFORM)/top/gen.h)
|
||||||
|
|
||||||
|
$(call topgen, $(OBJDIR)/$(PLATFORM)/top, mach/$(ARCH)/top/table)
|
||||||
|
|
||||||
|
$(call cprogram, $(OBJDIR)/$(PLATFORM)/top/top)
|
||||||
|
$(call installto, $(PLATDEP)/$(PLATFORM)/top)
|
||||||
|
endef
|
||||||
|
|
||||||
|
build-top = $(eval $(build-top-impl))
|
|
@ -14,15 +14,48 @@ define build-platform-impl
|
||||||
$(eval PLATFORM_$(PLATFORM) := \
|
$(eval PLATFORM_$(PLATFORM) := \
|
||||||
$(PLATIND)/descr/$(PLATFORM) \
|
$(PLATIND)/descr/$(PLATFORM) \
|
||||||
$(PLATFORM_HEADERS_$(PLATFORM)) \
|
$(PLATFORM_HEADERS_$(PLATFORM)) \
|
||||||
|
$(PLATDEP)/$(PLATFORM)/as \
|
||||||
|
$(PLATDEP)/$(PLATFORM)/ncg \
|
||||||
$(ARCHITECTURE_$(ARCH)))
|
$(ARCHITECTURE_$(ARCH)))
|
||||||
|
|
||||||
$(foreach f, $(platform-headers), $(call build-platform-headers, $f))
|
$(foreach f, $(platform-headers), $(call build-platform-headers, $f))
|
||||||
|
|
||||||
|
# libsys
|
||||||
|
|
||||||
$(call reset)
|
$(call reset)
|
||||||
$(foreach f, $(platform-libsys), $(call ackfile, $D/libsys/$f))
|
$(foreach f, $(platform-libsys), $(call ackfile, $D/libsys/$f))
|
||||||
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libsys.a)
|
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libsys.a)
|
||||||
$(call installto, $(PLATIND)/$(PLATFORM)/libsys.a)
|
$(call installto, $(PLATIND)/$(PLATFORM)/libsys.a)
|
||||||
|
|
||||||
|
# libem
|
||||||
|
|
||||||
|
$(call reset)
|
||||||
|
$(eval objdir := $(PLATFORM))
|
||||||
|
$(eval ackflags += -Ih)
|
||||||
|
$(foreach f, $(arch-libem-$(ARCH)), $(call ackfile, mach/$(ARCH)/libem/$f))
|
||||||
|
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libem.a)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/libem.a)
|
||||||
|
|
||||||
|
# libend
|
||||||
|
|
||||||
|
$(call reset)
|
||||||
|
$(eval objdir := $(PLATFORM))
|
||||||
|
$(eval ackflags += -Ih)
|
||||||
|
$(foreach f, $(arch-libend-$(ARCH)), $(call ackfile, mach/$(ARCH)/libend/$f))
|
||||||
|
$(call acklibrary, $(LIBDIR)/$(PLATFORM)/libend.a)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/libend.a)
|
||||||
|
|
||||||
|
# The tools themselves
|
||||||
|
|
||||||
|
$(call build-as)
|
||||||
|
$(call build-ncg)
|
||||||
|
|
||||||
|
# Build top only if the architecture asks for it.
|
||||||
|
|
||||||
|
$(if $(arch-top-$(ARCH)), $(call build-top))
|
||||||
|
|
||||||
|
# Language runtimes
|
||||||
|
|
||||||
$(foreach runtime, $(RUNTIMES), $(build-runtime-$(runtime)))
|
$(foreach runtime, $(RUNTIMES), $(build-runtime-$(runtime)))
|
||||||
endef
|
endef
|
||||||
|
|
||||||
|
|
|
@ -30,5 +30,13 @@ platform-libsys := \
|
||||||
|
|
||||||
$(eval $(call build-platform))
|
$(eval $(call build-platform))
|
||||||
|
|
||||||
|
define build-cpm-boot-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call ackfile, $D/boot.s)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/boot.o)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-cpm-boot-impl))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ var f=4
|
||||||
var d=8
|
var d=8
|
||||||
var ARCH=i80
|
var ARCH=i80
|
||||||
var PLATFORM=cpm
|
var PLATFORM=cpm
|
||||||
var PLATFORMDIR={EM}/lib/ack/{PLATFORM}
|
var PLATFORMDIR={EM}/share/ack/{PLATFORM}
|
||||||
var CPP_F=-D__unix
|
var CPP_F=-D__unix
|
||||||
var ALIGN=-a0:1 -a1:1 -a2:1 -a3:1 -b0:0x0100
|
var ALIGN=-a0:1 -a1:1 -a2:1 -a3:1 -b0:0x0100
|
||||||
var MACHOPT_F=-m8
|
var MACHOPT_F=-m8
|
||||||
|
@ -23,7 +23,7 @@ var C_INCLUDES=-I{EM}/share/ack/{PLATFORM}/include -I{EM}/share/ack/include/ansi
|
||||||
name be
|
name be
|
||||||
from .m.g
|
from .m.g
|
||||||
to .s
|
to .s
|
||||||
program {EM}/lib/ack/{ARCH}/ncg
|
program {EM}/lib/ack/{PLATFORM}/ncg
|
||||||
args <
|
args <
|
||||||
stdout
|
stdout
|
||||||
need .e
|
need .e
|
||||||
|
@ -31,7 +31,7 @@ end
|
||||||
name asopt
|
name asopt
|
||||||
from .s
|
from .s
|
||||||
to .so
|
to .so
|
||||||
program {EM}/lib/ack/{ARCH}/top
|
program {EM}/lib/ack/{PLATFORM}/top
|
||||||
args
|
args
|
||||||
optimizer
|
optimizer
|
||||||
stdin
|
stdin
|
||||||
|
@ -40,7 +40,7 @@ end
|
||||||
name as
|
name as
|
||||||
from .s.so
|
from .s.so
|
||||||
to .o
|
to .o
|
||||||
program {EM}/lib/ack/{ARCH}/as
|
program {EM}/lib/ack/{PLATFORM}/as
|
||||||
args - -o > <
|
args - -o > <
|
||||||
prep cond
|
prep cond
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,3 +15,14 @@ platform-libsys := \
|
||||||
$(eval $(call build-platform))
|
$(eval $(call build-platform))
|
||||||
$(eval $(call build-liblinux))
|
$(eval $(call build-liblinux))
|
||||||
|
|
||||||
|
define build-linux386-boot-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call ackfile, $D/boot.s)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/boot.o)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-linux386-boot-impl))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ var C_INCLUDES=-I{PLATFORMDIR}/include -I{EM}/share/ack/include/ansi
|
||||||
name be
|
name be
|
||||||
from .m.g
|
from .m.g
|
||||||
to .s
|
to .s
|
||||||
program {EM}/lib/ack/{ARCH}/ncg
|
program {EM}/lib/ack/{PLATFORM}/ncg
|
||||||
mapflag -gdb GF=-gdb
|
mapflag -gdb GF=-gdb
|
||||||
args {GF?} <
|
args {GF?} <
|
||||||
stdout
|
stdout
|
||||||
|
@ -36,7 +36,7 @@ end
|
||||||
name as
|
name as
|
||||||
from .s.so
|
from .s.so
|
||||||
to .o
|
to .o
|
||||||
program {EM}/lib/ack/{ARCH}/as
|
program {EM}/lib/ack/{PLATFORM}/as
|
||||||
args - -o > <
|
args - -o > <
|
||||||
prep cond
|
prep cond
|
||||||
end
|
end
|
||||||
|
|
|
@ -15,4 +15,11 @@ platform-libsys := \
|
||||||
$(eval $(call build-platform))
|
$(eval $(call build-platform))
|
||||||
$(eval $(call build-liblinux))
|
$(eval $(call build-liblinux))
|
||||||
|
|
||||||
|
define build-linux68k-boot-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call ackfile, $D/boot.s)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/boot.o)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-linux68k-boot-impl))
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ var C_INCLUDES=-I{PLATFORMDIR}/include -I{EM}/share/ack/include/ansi
|
||||||
name be
|
name be
|
||||||
from .m.g
|
from .m.g
|
||||||
to .s
|
to .s
|
||||||
program {EM}/lib/ack/{ARCH}/ncg
|
program {EM}/lib/ack/{PLATFORM}/ncg
|
||||||
mapflag -gdb GF=-gdb
|
mapflag -gdb GF=-gdb
|
||||||
args {GF?} <
|
args {GF?} <
|
||||||
stdout
|
stdout
|
||||||
|
@ -36,7 +36,7 @@ end
|
||||||
name as
|
name as
|
||||||
from .s.so
|
from .s.so
|
||||||
to .o
|
to .o
|
||||||
program {EM}/lib/ack/{ARCH}/as
|
program {EM}/lib/ack/{PLATFORM}/as
|
||||||
args - -o > <
|
args - -o > <
|
||||||
prep cond
|
prep cond
|
||||||
end
|
end
|
||||||
|
|
|
@ -16,4 +16,16 @@ platform-libsys := \
|
||||||
$(eval $(call build-platform))
|
$(eval $(call build-platform))
|
||||||
$(eval $(call build-liblinux))
|
$(eval $(call build-liblinux))
|
||||||
|
|
||||||
|
define build-linuxppc-boot-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call ackfile, $D/boot.s)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/boot.o)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-linuxppc-boot-impl))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,4 +28,11 @@ platform-libsys := \
|
||||||
|
|
||||||
$(eval $(call build-platform))
|
$(eval $(call build-platform))
|
||||||
|
|
||||||
|
define build-pc86-boot-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call ackfile, $D/boot.s)
|
||||||
|
$(call installto, $(PLATIND)/$(PLATFORM)/boot.o)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-pc86-boot-impl))
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ var C_INCLUDES=-I{PLATFORMDIR}/include -I{EM}/share/ack/include/ansi
|
||||||
name be
|
name be
|
||||||
from .m.g
|
from .m.g
|
||||||
to .s
|
to .s
|
||||||
program {EM}/lib/ack/{ARCH}/ncg
|
program {EM}/lib/ack/{PLATFORM}/ncg
|
||||||
args <
|
args <
|
||||||
stdout
|
stdout
|
||||||
need .e
|
need .e
|
||||||
|
@ -31,7 +31,7 @@ end
|
||||||
name as
|
name as
|
||||||
from .s.so
|
from .s.so
|
||||||
to .o
|
to .o
|
||||||
program {EM}/lib/ack/{ARCH}/as
|
program {EM}/lib/ack/{PLATFORM}/as
|
||||||
args - -o > <
|
args - -o > <
|
||||||
prep cond
|
prep cond
|
||||||
end
|
end
|
||||||
|
|
|
@ -46,6 +46,7 @@ $o: $1/Lpars.h
|
||||||
$1/Lpars.h: $2 $(LLGEN)
|
$1/Lpars.h: $2 $(LLGEN)
|
||||||
@echo LLGEN $1/Lpars.c
|
@echo LLGEN $1/Lpars.c
|
||||||
@mkdir -p $(dir $o)
|
@mkdir -p $(dir $o)
|
||||||
|
$(hide) $(RM) $o $1/Lpars.h
|
||||||
$(hide) cd $(dir $o) && $(LLGEN) $(abspath $2)
|
$(hide) cd $(dir $o) && $(LLGEN) $(abspath $2)
|
||||||
|
|
||||||
$(foreach f,$o,$(call cfile,$f))
|
$(foreach f,$o,$(call cfile,$f))
|
||||||
|
|
|
@ -19,4 +19,5 @@ $(call build-simple-tool,ashow)
|
||||||
$(call build-simple-tool,asize)
|
$(call build-simple-tool,asize)
|
||||||
$(call build-simple-tool,aslod)
|
$(call build-simple-tool,aslod)
|
||||||
$(call build-simple-tool,astrip)
|
$(call build-simple-tool,astrip)
|
||||||
|
$(call build-simple-tool,aelflod)
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,9 @@ $(call cfile, $(OBJDIR)/$D/em_flag.c)
|
||||||
$(call cfile, $(OBJDIR)/$D/em_pseu.c)
|
$(call cfile, $(OBJDIR)/$D/em_pseu.c)
|
||||||
$(call cfile, $(OBJDIR)/$D/em_mnem.c)
|
$(call cfile, $(OBJDIR)/$D/em_mnem.c)
|
||||||
$(call cfile, $D/em_ptyp.c)
|
$(call cfile, $D/em_ptyp.c)
|
||||||
|
|
||||||
|
$(eval $q: $g)
|
||||||
|
|
||||||
$(call clibrary, $(LIBDIR)/libem_data.a)
|
$(call clibrary, $(LIBDIR)/libem_data.a)
|
||||||
$(eval LIBEM_DATA := $q)
|
$(eval LIBEM_DATA := $q)
|
||||||
|
|
||||||
|
|
34
util/led/build.mk
Normal file
34
util/led/build.mk
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
D := util/led
|
||||||
|
|
||||||
|
define build-led-impl
|
||||||
|
$(call reset)
|
||||||
|
$(call cfile, $D/archive.c)
|
||||||
|
$(call cfile, $D/error.c)
|
||||||
|
$(call cfile, $D/extract.c)
|
||||||
|
$(call cfile, $D/finish.c)
|
||||||
|
$(call cfile, $D/main.c)
|
||||||
|
$(call cfile, $D/memory.c)
|
||||||
|
$(call cfile, $D/output.c)
|
||||||
|
$(call cfile, $D/read.c)
|
||||||
|
$(call cfile, $D/relocate.c)
|
||||||
|
$(call cfile, $D/save.c)
|
||||||
|
$(call cfile, $D/scan.c)
|
||||||
|
$(call cfile, $D/sym.c)
|
||||||
|
$(call cfile, $D/write.c)
|
||||||
|
|
||||||
|
$(call file, $(LIBSTRING))
|
||||||
|
$(call file, $(LIBOBJECT))
|
||||||
|
|
||||||
|
$(call cprogram, $(BINDIR)/em_led)
|
||||||
|
$(call installto, $(PLATDEP)/em_led)
|
||||||
|
|
||||||
|
$(call reset)
|
||||||
|
$(eval q := $D/ack.out.5)
|
||||||
|
$(call installto, $(INSDIR)/share/man/man5/ack.out.5)
|
||||||
|
|
||||||
|
$(call reset)
|
||||||
|
$(eval q := $D/led.6)
|
||||||
|
$(call installto, $(INSDIR)/share/man/man6/led.6)
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-led-impl))
|
|
@ -32,6 +32,8 @@ $(OBJDIR)/$D/enterkeyw.c: $D/cvtkeywords $D/keywords
|
||||||
$(hide) cd $$(dir $$@) && sh $(abspath $D/cvtkeywords) $(abspath $D/keywords)
|
$(hide) cd $$(dir $$@) && sh $(abspath $D/cvtkeywords) $(abspath $D/keywords)
|
||||||
$(call cfile, $(OBJDIR)/$D/enterkeyw.c)
|
$(call cfile, $(OBJDIR)/$D/enterkeyw.c)
|
||||||
|
|
||||||
|
$(eval $q: $(INCDIR)/em_spec.h)
|
||||||
|
|
||||||
$(call file, $(LIBEM_DATA))
|
$(call file, $(LIBEM_DATA))
|
||||||
$(call cprogram, $(BINDIR)/ncgg)
|
$(call cprogram, $(BINDIR)/ncgg)
|
||||||
$(eval NCGG := $o)
|
$(eval NCGG := $o)
|
||||||
|
|
50
util/topgen/build.mk
Normal file
50
util/topgen/build.mk
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
D := util/topgen
|
||||||
|
|
||||||
|
# Rule to build topgen.
|
||||||
|
|
||||||
|
define build-topgen-impl
|
||||||
|
$(call reset)
|
||||||
|
$(eval cflags += -I$(OBJDIR)/$D -I$D)
|
||||||
|
|
||||||
|
$(call cfile, $D/LLlex.c)
|
||||||
|
$(call cfile, $D/hash.c)
|
||||||
|
$(call cfile, $D/main.c)
|
||||||
|
$(call cfile, $D/pattern.c)
|
||||||
|
$(call cfile, $D/symtab.c)
|
||||||
|
$(eval $q: $(OBJDIR)/$D/Lpars.h)
|
||||||
|
|
||||||
|
$(call llgen, $(OBJDIR)/$D, $D/topgen.g)
|
||||||
|
|
||||||
|
$(call file, $(LIBASSERT))
|
||||||
|
$(call file, $(LIBPRINT))
|
||||||
|
$(call file, $(LIBALLOC))
|
||||||
|
$(call file, $(LIBSYSTEM))
|
||||||
|
$(call file, $(LIBSTRING))
|
||||||
|
|
||||||
|
$(call cprogram, $(BINDIR)/topgen)
|
||||||
|
TOPGEN := $o
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(build-topgen-impl))
|
||||||
|
|
||||||
|
# Rule to invoke to *use* LLgen.
|
||||||
|
#
|
||||||
|
# $1: directory to put output files
|
||||||
|
# $2: input files
|
||||||
|
#
|
||||||
|
# Output files are *not* compiled (gen.c is expected to be included by
|
||||||
|
# something).
|
||||||
|
|
||||||
|
define topgen-impl
|
||||||
|
$(eval CLEANABLES += $1/gen.h $1/gen.c)
|
||||||
|
|
||||||
|
$1/gen.h: $1/gen.c
|
||||||
|
$1/gen.c: $2 $(TOPGEN)
|
||||||
|
@echo TOPGEN $$@
|
||||||
|
@mkdir -p $$(dir $$@)
|
||||||
|
$(hide) $(RM) $1/gen.h $1/gen.c
|
||||||
|
$(hide) cd $$(dir $$@) && $(abspath $(TOPGEN)) $(abspath $2)
|
||||||
|
|
||||||
|
endef
|
||||||
|
|
||||||
|
topgen = $(eval $(call topgen-impl,$1,$2))
|
Loading…
Reference in a new issue