--- a/Makefile +++ b/Makefile @@ -1,6 +1,7 @@ PREFIX = /usr/local CHROMIUM_SUFFIX = +CHROMIUM_APP = Chromium CHROMIUM_NAME = chromium$(CHROMIUM_SUFFIX) CHROMIUM_BINARY = /usr/lib/$(CHROMIUM_NAME)/$(CHROMIUM_NAME) CHROMIUM_VENDOR = $(shell . /etc/os-release; echo $$NAME) @@ -9,6 +10,7 @@ override CFLAGS += $(shell pkg-config -- override LDLIBS += $(shell pkg-config --libs glib-2.0) override CPPFLAGS += \ -DLAUNCHER_VERSION=\"$(shell git describe 2>/dev/null || echo v8)\" \ + -DCHROMIUM_APP="\"$(CHROMIUM_APP)\"" \ -DCHROMIUM_NAME=\"$(CHROMIUM_NAME)\" \ -DCHROMIUM_BINARY=\"$(CHROMIUM_BINARY)\" \ -DCHROMIUM_VENDOR="\"$(CHROMIUM_VENDOR)\"" @@ -17,9 +19,20 @@ ifeq ($(ENABLE_GCOV),1) RUNTESTS_CFLAGS = -fprofile-arcs -ftest-coverage endif -$(CHROMIUM_NAME): launcher.c +ifneq ($(CHROMIUM_ARGS),) + , := , + ARGS_FILE = args.h + override CPPFLAGS += -DCHROMIUM_ARGS +endif + +$(CHROMIUM_NAME): launcher.c $(ARGS_FILE) $(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $(LDFLAGS) $< $(LDLIBS) +$(ARGS_FILE): + echo "static char *default_system_flags[] = {" > $@ + echo "$(addprefix \",$(addsuffix \"$(,),$(CHROMIUM_ARGS)))" >> $@ + echo "NULL};" >> $@ + runtests: launcher_test.c minunit.h launcher.c $(CC) -o $@ $(CPPFLAGS) $(CFLAGS) $(RUNTESTS_CFLAGS) $(LDFLAGS) $< $(LDLIBS) @@ -38,4 +51,4 @@ uninstall: clean: $(RM) $(CHROMIUM_NAME) runtests *.o *.{gcda,gcno,gcov} -.PHONY: check install install-strip uninstall clean +.PHONY: check install install-strip uninstall clean $(ARGS_FILE) --- a/launcher.c +++ b/launcher.c @@ -5,6 +5,10 @@ #include +#ifdef CHROMIUM_ARGS +#include "args.h" +#endif + static char * #ifdef TESTING real_default_system_flags_conf_path() @@ -66,7 +70,7 @@ static void show_help(const char *system fprintf( stderr, "\n" - "Chromium launcher %s -- for Chromium help, see `man %s`\n" + CHROMIUM_APP " launcher %s -- for " CHROMIUM_APP " help, see `man %s`\n" "\n" "Custom flags are read in order from the following files:\n\n" " %s\n %s\n\n" @@ -104,6 +108,12 @@ static int launcher(int argc, char const free(user_flags_conf_path); args = g_slist_append(args, g_strdup(CHROMIUM_BINARY)); + +#ifdef CHROMIUM_ARGS + for (i = 0; default_system_flags[i] != NULL; i++) + args = g_slist_append(args, g_strdup(default_system_flags[i])); +#endif + args = g_slist_concat(args, flags); for (i = 1; i < argc; i++)