Use ack -mcpm -fp for mandelbrot.c, startrek.c

Add a variable %{ackldflags} so I can pass `-fp`.  This change seems
to cause the build to relink every ackprogram, because the link now
needs to use %{ackldflags} even if the flags are empty.

mandelbrot_c_cpm runs in YAZE-AG; startrek_c_cpm doesn't run because
it doesn't fit in the 16-bit address space.
This commit is contained in:
George Koehler 2018-04-28 13:18:27 -04:00
parent 1df4db99c9
commit 4a3b7be795
3 changed files with 18 additions and 1 deletions

View file

@ -4,6 +4,7 @@ vars.cflags = {
vars.ackcflags = { vars.ackcflags = {
"-O6" "-O6"
} }
vars.ackldflags = {}
vars.plats = { vars.plats = {
"cpm", "cpm",
"linux386", "linux386",

View file

@ -4,6 +4,10 @@ local conly = {
rpi = true rpi = true
} }
local softfp = {
cpm = true,
}
local sourcefiles = filenamesof( local sourcefiles = filenamesof(
"./hilo.b", "./hilo.b",
"./hilo.bas", "./hilo.bas",
@ -15,6 +19,11 @@ local sourcefiles = filenamesof(
"./startrek.c" "./startrek.c"
) )
local usesfp = {
["mandelbrot.c"] = true,
["startrek.c"] = true,
}
local installmap = {} local installmap = {}
for _, file in ipairs(sourcefiles) do for _, file in ipairs(sourcefiles) do
local b = basename(file) local b = basename(file)
@ -22,6 +31,12 @@ for _, file in ipairs(sourcefiles) do
local _, _, e = b:find("%.(%w*)$") local _, _, e = b:find("%.(%w*)$")
for _, plat in ipairs(vars.plats) do for _, plat in ipairs(vars.plats) do
local flags = {}
if softfp[plat] and usesfp[b] then
flags[#flags+1] = "-fp"
end
if (e == "c") or not conly[plat] then if (e == "c") or not conly[plat] then
local exe = ackprogram { local exe = ackprogram {
name = be.."_"..plat, name = be.."_"..plat,
@ -29,6 +44,7 @@ for _, file in ipairs(sourcefiles) do
vars = { vars = {
plat = plat, plat = plat,
lang = e, lang = e,
["+ackldflags"] = flags,
} }
} }

View file

@ -91,7 +91,7 @@ definerule("ackprogram",
}, },
_clibrary = acklibrary, _clibrary = acklibrary,
commands = { commands = {
"ACKDIR=$(INSDIR) $(INSDIR)/bin/ack -m%{plat} -.%{lang} -o %{outs} %{ins}" "ACKDIR=$(INSDIR) $(INSDIR)/bin/ack -m%{plat} -.%{lang} -o %{outs} %{ins} %{ackldflags}"
} }
} }
end end