Skip to content

Commit a05801f

Browse files
committed
Second round of makefile/build.d consolidation
1 parent a9d73d6 commit a05801f

3 files changed

Lines changed: 60 additions & 245 deletions

File tree

src/build.d

Lines changed: 50 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -236,10 +236,10 @@ DFLAGS=-I%@P%/../../../../../druntime/import -I%@P%/../../../../../phobos -L-L%@
236236
});
237237

238238
/// Returns: the dependencies that build the D backend
239-
alias dBackend = memoize!(function () {
239+
alias backendObj = memoize!(function () {
240240
Dependency dependency = {
241-
name: "dbackend",
242-
target: env["G"].buildPath("dbackend").objName,
241+
name: "backendObj",
242+
target: env["G"].buildPath("backend").objName,
243243
sources: sources.backend,
244244
msg: "(DC) D_BACK_OBJS %-(%s, %)".format(sources.backend.map!(e => e.baseName).array),
245245
command: [
@@ -258,9 +258,9 @@ alias backend = memoize!(function() {
258258
Dependency dependency = {
259259
name: "backend",
260260
msg: "(LIB) %s".format("BACKEND".libName),
261-
sources: [ env["G"].buildPath("dbackend").objName ],
261+
sources: [ env["G"].buildPath("backend").objName ],
262262
target: env["G"].buildPath("backend").libName,
263-
deps: [dBackend],
263+
deps: [backendObj],
264264
command: [env["HOST_DMD_RUN"], env["MODEL_FLAG"], "-lib", "-of$@", "$<"]
265265
};
266266
return new DependencyRef(dependency);
@@ -312,11 +312,12 @@ Params:
312312
*/
313313
alias dmdExe = memoize!(function(string targetSuffix, string[] extraFlags...) {
314314
// Main DMD build dependency
315+
const dmdSources = sources.dmd.chain(sources.root).array;
315316
Dependency dependency = {
316317
// newdelete.o + lexer.a + backend.a
317-
sources: sources.dmd.chain(sources.root, lexer.targets, backend.targets).array,
318+
sources: dmdSources.chain(lexer.targets, backend.targets).array,
318319
target: env["DMD_PATH"] ~ targetSuffix,
319-
msg: "(DC) DMD%s %-(%s, %)".format(targetSuffix, sources.dmd.map!(e => e.baseName).array),
320+
msg: "(DC) DMD%s %-(%s, %)".format(targetSuffix, dmdSources.map!(e => e.baseName).array),
320321
deps: [versionFile, sysconfDirFile, lexer, backend],
321322
command: [
322323
env["HOST_DMD_RUN"],
@@ -497,6 +498,31 @@ struct DependencyRange
497498
/// Sets the environment variables
498499
void parseEnvironment()
499500
{
501+
// This block is temporary until we can remove the windows make files
502+
{
503+
const ddebug = env.get("DDEBUG", null);
504+
if (ddebug.length)
505+
{
506+
writefln("WARNING: the DDEBUG variable is deprecated");
507+
if (ddebug == "-debug -g -unittest -cov")
508+
{
509+
environment["ENABLE_DEBUG"] = "1";
510+
environment["ENABLE_UNITTEST"] = "1";
511+
environment["ENABLE_COVERAGE"] = "1";
512+
}
513+
else if (ddebug == "-debug -g -unittest")
514+
{
515+
environment["ENABLE_DEBUG"] = "1";
516+
environment["ENABLE_UNITTEST"] = "1";
517+
}
518+
else
519+
{
520+
writefln("Error: DDEBUG is not an expected value '%s'", ddebug);
521+
exit(1);
522+
}
523+
}
524+
}
525+
500526
env.getDefault("TARGET_CPU", "X86");
501527
version (Windows)
502528
{
@@ -729,16 +755,23 @@ auto sourceFiles()
729755
.map!(e => e.name)
730756
.filter!(e => !lexerRootFiles.canFind(e.baseName.stripExtension))
731757
.array,
732-
backend:
733-
dirEntries(env["C"], "*.d", SpanMode.shallow)
734-
.map!(e => e.name)
735-
.filter!(e => !e.baseName.among("dt.d", "obj.d"))
736-
.array,
737-
backendHeaders: [
738-
// can't be built with -betterC
739-
"dt",
740-
"obj",
741-
].map!(e => env["C"].buildPath(e ~ ".d")).array,
758+
backend: ("
759+
bcomplex.d evalu8.d divcoeff.d dvec.d go.d gsroa.d glocal.d gdag.d gother.d gflow.d
760+
out.d
761+
gloop.d compress.d cgelem.d cgcs.d ee.d cod4.d cod5.d nteh.d blockopt.d mem.d cg.d cgreg.d
762+
dtype.d debugprint.d fp.d symbol.d elem.d dcode.d cgsched.d cg87.d cgxmm.d cgcod.d cod1.d cod2.d
763+
cod3.d cv8.d dcgcv.d pdata.d util2.d var.d md5.d backconfig.d ph2.d drtlsym.d dwarfeh.d ptrntab.d
764+
dvarstats.d dwarfdbginf.d cgen.d os.d goh.d barray.d cgcse.d elpicpie.d
765+
machobj.d elfobj.d
766+
".split
767+
~ ( (env["OS"] == "windows") ? "cgobj.d filespec.d mscoffobj.d newman.d".split : ["aarray.d"] )
768+
).map!(e => env["C"].buildPath(e)).array,
769+
backendHeaders: "
770+
cc.d cdef.d cgcv.d code.d cv4.d dt.d el.d global.d
771+
obj.d oper.d outbuf.d rtlsym.d code_x86.d iasm.d codebuilder.d
772+
ty.d type.d exh.d mach.d mscoff.d dwarf.d dwarf2.d xmm.d
773+
dlist.d melf.d varstats.di
774+
".split.map!(e => env["C"].buildPath(e)).array,
742775
};
743776
sources.dmd = sources.frontend ~ sources.backendHeaders;
744777

src/posix.mak

Lines changed: 4 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -343,21 +343,6 @@ GLUE_SRCS=$(addsuffix .d, $(addprefix $D/,irstate toctype glue gluelayer todt to
343343

344344
DMD_SRCS=$(FRONT_SRCS) $(GLUE_SRCS) $(BACK_HDRS)
345345

346-
BACK_DOBJS = bcomplex.o evalu8.o divcoeff.o dvec.o go.o gsroa.o glocal.o gdag.o gother.o gflow.o \
347-
out.o \
348-
gloop.o compress.o cgelem.o cgcs.o ee.o cod4.o cod5.o nteh.o blockopt.o mem.o cg.o cgreg.o \
349-
dtype.o debugprint.o fp.o symbol.o elem.o dcode.o cgsched.o cg87.o cgxmm.o cgcod.o cod1.o cod2.o \
350-
cod3.o cv8.o dcgcv.o pdata.o util2.o var.o md5.o backconfig.o ph2.o drtlsym.o dwarfeh.o ptrntab.o \
351-
aarray.o dvarstats.o dwarfdbginf.o elfobj.o cgen.o os.o goh.o barray.o cgcse.o elpicpie.o
352-
353-
G_DOBJS = $(addprefix $G/, $(BACK_DOBJS))
354-
355-
ifeq (osx,$(OS))
356-
BACK_DOBJS += machobj.o
357-
else
358-
# BACK_DOBJS += elfobj.o
359-
endif
360-
361346
######## DMD glue layer and backend
362347

363348
GLUE_SRC = \
@@ -411,7 +396,7 @@ SRC_MAKE = posix.mak osmodel.mak
411396

412397
STRING_IMPORT_FILES = $G/VERSION $G/SYSCONFDIR.imp $(RES)/default_ddoc_theme.ddoc
413398

414-
DEPS = $(patsubst %.o,%.deps,$(DMD_OBJS) $(BACK_OBJS) $(BACK_DOBJS))
399+
DEPS = $(patsubst %.o,%.deps,$(DMD_OBJS))
415400

416401
RUN_BUILD = $(GENERATED)/build HOST_DMD="$(HOST_DMD)" OS=$(OS) BUILD=$(BUILD) MODEL=$(MODEL) AUTO_BOOTSTRAP="$(AUTO_BOOTSTRAP)" --called-from-make
417402

@@ -443,21 +428,13 @@ toolchain-info:
443428
@echo '==== Toolchain Information ===='
444429
@echo
445430

446-
$G/backend.a: $(G_DOBJS) $(SRC_MAKE)
447-
$(AR) rcs $@ $(G_DOBJS)
448-
449431
$G/dmd_frontend: $(FRONT_SRCS) $D/gluelayer.d $(ROOT_SRCS) $G/lexer.a $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
450432
$(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^) -version=NoBackend
451433

452-
ifdef ENABLE_LTO
453-
$G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/lexer.a $(G_DOBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
454-
$(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^)
455-
else
456-
$G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/backend.a $G/lexer.a $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
434+
$G/dmd: $(DMD_SRCS) $(ROOT_SRCS) $G/lexer.a $G/backend.o $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
457435
$(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH) $(LEXER_ROOT),$^)
458-
endif
459436

460-
$G/dmd-unittest: $(DMD_SRCS) $(ROOT_SRCS) $(LEXER_SRCS) $(G_DOBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
437+
$G/dmd-unittest: $(DMD_SRCS) $(ROOT_SRCS) $(LEXER_SRCS) $G/backend.o $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
461438
$(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) $(DFLAGS) -g -unittest -main -version=NoMain $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^)
462439

463440
unittest: $G/dmd-unittest
@@ -530,10 +507,6 @@ FORCE: ;
530507

531508
-include $(DEPS)
532509

533-
$(G_DOBJS): $G/%.o: $C/%.d posix.mak $(HOST_DMD_PATH)
534-
@echo " (HOST_DMD_RUN) BACK_DOBJS $<"
535-
$(HOST_DMD_RUN) -c -of$@ $(DFLAGS) $(MODEL_FLAG) $(BACK_BETTERC) $(BACK_DFLAGS) $<
536-
537510
################################################################################
538511
# Generate the man pages
539512
################################################################################
@@ -589,7 +562,7 @@ dscanner: $(DSCANNER_DIR)/dsc
589562
$G/cxxfrontend.o: $G/%.o: tests/%.c $(SRC) $(ROOT_SRC) $(SRC_MAKE)
590563
$(CXX) -c -o$@ $(CXXFLAGS) $(DMD_FLAGS) $(MMD) $<
591564

592-
$G/cxx-unittest: $G/cxxfrontend.o $(DMD_SRCS) $(ROOT_SRCS) $G/lexer.a $(G_DOBJS) $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
565+
$G/cxx-unittest: $G/cxxfrontend.o $(DMD_SRCS) $(ROOT_SRCS) $G/lexer.a $G/backend.o $(STRING_IMPORT_FILES) $(HOST_DMD_PATH)
593566
CC=$(HOST_CXX) $(HOST_DMD_RUN) -of$@ $(MODEL_FLAG) -vtls -J$G -J$(RES) -L-lstdc++ $(DFLAGS) -version=NoMain $(filter-out $(STRING_IMPORT_FILES) $(HOST_DMD_PATH),$^)
594567

595568
cxx-unittest: $G/cxx-unittest

0 commit comments

Comments
 (0)