From: Davin McCall Date: Tue, 15 May 2018 20:36:03 +0000 (+0100) Subject: Generate mconfig.h file with selected variables from mconfig. X-Git-Tag: v0.2.0~14 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=bf860411d4b1e8471a53f7bf2f640e73093152a5;p=oweals%2Fdinit.git Generate mconfig.h file with selected variables from mconfig. --- diff --git a/mconfig b/mconfig index 12b64a0..3aca79d 100644 --- a/mconfig +++ b/mconfig @@ -2,6 +2,7 @@ SBINDIR=/sbin MANDIR=/usr/share/man +SYSCONTROLSOCKET=/dev/dinitctl # General build options. Uncomment the options appropriate for your system. diff --git a/src/Makefile b/src/Makefile index cf7887d..701afb9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -11,7 +11,14 @@ objects = $(dinit_objects) dinitctl.o shutdown.o all: dinit dinitctl $(SHUTDOWN) -dinit: $(dinit_objects) +mconfig.h: mconfig-gen + ./mconfig-gen > mconfig.h + +mconfig-gen: mconfig-gen.cc ../mconfig + $(CXX) $(CXXOPTS) -o mconfig-gen mconfig-gen.cc $(LDFLAGS) -DSBINDIR=$(SBINDIR) \ + -DSYSCONTROLSOCKET=$(SYSCONTROLSOCKET) + +dinit: mconfig.h $(dinit_objects) $(CXX) -o dinit $(dinit_objects) $(LDFLAGS) dinitctl: dinitctl.o @@ -35,7 +42,8 @@ endif clean: rm -f *.o *.d - rm -f dinit dinitctl shutdown + rm -f dinit dinitctl shutdown mconfig-gen + rm -f mconfig.h $(MAKE) -C tests clean -include $(objects:.o=.d) diff --git a/src/mconfig-gen.cc b/src/mconfig-gen.cc new file mode 100644 index 0000000..0da3d84 --- /dev/null +++ b/src/mconfig-gen.cc @@ -0,0 +1,18 @@ +#include + +#define STR2(arg) #arg +#define STR(arg) STR2(arg) + +static std::string stringify(std::string a) +{ + return std::string("\"") + a + "\""; +} + +int main(int argc, char **argv) +{ + using namespace std; + cout << "// This file is auto-generated by mconfig-gen.cc." << endl; + cout << "const static char SYSCONTROLSOCKET[] =" << stringify(STR(SYSCONTROLSOCKET)) << ";" << endl; + cout << "const static char SBINDIR[] = " << stringify(STR(SBINDIR)) << ";" << endl; + return 0; +}