Browse Source

Move mconfig-gen into build/tools

I.e. separate out build-process objects from build artifacts.
Davin McCall 3 years ago
parent
commit
6f2ca4beb9
7 changed files with 34 additions and 11 deletions
  1. 3 2
      .gitignore
  2. 1 0
      Makefile
  3. 21 0
      build/Makefile
  4. 1 0
      build/includes/README
  5. 6 0
      build/tools/Makefile
  6. 0 0
      build/tools/mconfig-gen.cc
  7. 2 9
      src/Makefile

+ 3 - 2
.gitignore

@@ -5,8 +5,6 @@
 /src/dinitctl
 /src/dinitcheck
 /src/shutdown
-/src/mconfig-gen
-/src/includes/mconfig.h
 /src/tests/tests
 /src/tests/proctests
 /src/tests/loadtests
@@ -18,6 +16,9 @@
 /src/igr-tests/igr-runner
 /mconfig
 
+/build/includes/*.h
+/build/tools/mconfig-gen
+
 # Integration test output:
 /src/igr-tests/basic/basic-ran
 /src/igr-tests/environ/env-record

+ 1 - 0
Makefile

@@ -1,6 +1,7 @@
 # Makefile for Dinit.
 
 all:
+	$(MAKE) -C build all
 	$(MAKE) -C src all
 	$(MAKE) -C doc/manpages all
 	@echo "***"

+ 21 - 0
build/Makefile

@@ -0,0 +1,21 @@
+all: ../mconfig includes/mconfig.h
+
+# Look for a suitable build config file and use it.
+../mconfig:
+	@UNAME=`uname`;\
+	if [ -f "../configs/mconfig.$$UNAME.sh" ]; then \
+	    echo "Found auto-configuration script for OS: $$UNAME"; \
+	    ( cd ../configs; sh "mconfig.$$UNAME.sh" ) \
+	elif [ -f "../configs/mconfig.$$UNAME" ]; then \
+	    echo "Found configuration for OS: $$UNAME"; \
+	    ln -sf "configs/mconfig.$$UNAME" ../mconfig; \
+	else \
+	    echo "No config available. Please create suitable mconfig file."; \
+	    exit 1; \
+	fi
+
+includes/mconfig.h: ../mconfig tools/mconfig-gen.cc
+	$(MAKE) -C tools mconfig-gen
+	./tools/mconfig-gen SBINDIR=$(SBINDIR) SYSCONTROLSOCKET=$(SYSCONTROLSOCKET) \
+		SHUTDOWN_PREFIX=$(SHUTDOWN_PREFIX) VERSION=$(VERSION) \
+		$(if $(USE_UTMPX),USE_UTMPX=$(USE_UTMPX),) > includes/mconfig.h

+ 1 - 0
build/includes/README

@@ -0,0 +1 @@
+The include files in this folder are generated as part of the build.

+ 6 - 0
build/tools/Makefile

@@ -0,0 +1,6 @@
+HOSTCXX ?= $(CXX)
+HOSTCXXFLAGS ?= $(CXXFLAGS)
+HOSTLDFLAGS ?= $(LDFLAGS)
+
+mconfig-gen: mconfig-gen.cc ../../mconfig
+	$(HOSTCXX) $(HOSTCXXOPTS) -o mconfig-gen mconfig-gen.cc $(HOSTLDFLAGS)

+ 0 - 0
src/mconfig-gen.cc → build/tools/mconfig-gen.cc


+ 2 - 9
src/Makefile

@@ -1,9 +1,6 @@
 include ../mconfig
 include ../build/version.conf
 
-HOSTCXX ?= $(CXX)
-HOSTCXXFLAGS ?= $(CXXFLAGS)
-HOSTLDFLAGS ?= $(LDFLAGS)
 STRIPOPTS ?= -s
 
 ifeq ($(BUILD_SHUTDOWN),yes)
@@ -31,14 +28,10 @@ all: dinit dinitctl dinitcheck $(SHUTDOWN)
 	    exit 1; \
 	fi
 
-includes/mconfig.h: mconfig-gen
-	./mconfig-gen SBINDIR=$(SBINDIR) SYSCONTROLSOCKET=$(SYSCONTROLSOCKET) SHUTDOWN_PREFIX=$(SHUTDOWN_PREFIX) \
-		VERSION=$(VERSION) $(if $(USE_UTMPX),USE_UTMPX=$(USE_UTMPX),) > includes/mconfig.h
-
 mconfig-gen: mconfig-gen.cc ../mconfig
 	$(HOSTCXX) $(HOSTCXXOPTS) -o mconfig-gen mconfig-gen.cc $(HOSTLDFLAGS)
 
-$(objects): includes/mconfig.h
+$(objects): ../build/includes/mconfig.h
 
 dinit: $(dinit_objects)
 	$(CXX) -o dinit $(dinit_objects) $(LDFLAGS)
@@ -53,7 +46,7 @@ $(SHUTDOWNPREFIX)shutdown: shutdown.o
 	$(CXX) -o $(SHUTDOWNPREFIX)shutdown shutdown.o $(LDFLAGS)
 
 $(objects): %.o: %.cc
-	$(CXX) $(CXXOPTS) -MMD -MP -Iincludes -Idasynq -c $< -o $@
+	$(CXX) $(CXXOPTS) -MMD -MP -Iincludes -Idasynq -I../build/includes -c $< -o $@
 
 check: includes/mconfig.h
 	$(MAKE) -C tests check