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
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)
--- /dev/null
+#include <iostream>
+
+#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;
+}