# Directories PREFIX=/usr BINDIR=$(PREFIX)/bin SYSCONFDIR=/etc SHAREDIR=$(PREFIX)/share LOCALEDIR=$(SHAREDIR)/locale # External program/support programs SUDO=$(BINDIR)/sudo PARAMANO_SET=$(BINDIR)/paramano-set # Misc PARAMANO=$(BINDIR)/paramano PARAMANO_CONF=$(SYSCONFDIR)/paramano.conf ROOT_UID=0 DEFS += -DPREFIX=\"$(PREFIX)\" \ -DBINDIR=\"$(BINDIR)\" \ -DSUDO=\"$(SUDO)\" \ -DPARAMANO_SET=\"$(PARAMANO_SET)\" \ -DPARAMANO_CONF=\"$(PARAMANO_CONF)\" \ -DLOCALEDIR=\"$(LOCALEDIR)\" \ -DSHAREDIR=\"$(SHAREDIR)\" \ -DROOT_UID=$(ROOT_UID) \ -D_GNU_SOURCE DEPS = bat_tray.h \ common.h \ config_file.h \ defaults.h \ getcore.h \ getfreq.h \ getgov.h \ paramano.h \ reload.h \ tray.h \ paramano_set_interface.h CFLAGS = -I/usr/include/gtk-2.0 \ -I/usr/lib/gtk-2.0/include \ -I/usr/include/pango-1.0 \ -I/usr/include/cairo \ -I/usr/include/gdk-pixbuf-2.0 \ -I/usr/include/atk-1.0 \ -I/usr/include/glib-2.0 \ -I/usr/lib/glib-2.0/include \ -Wall \ -Wclobbered \ -Wempty-body \ -Wignored-qualifiers \ -Wmissing-field-initializers \ -Wmissing-parameter-type \ -Woverride-init \ -Wsign-compare \ -Wtype-limits \ -Wuninitialized \ -Wunused-but-set-parameter \ -Wdouble-promotion \ -Werror \ -D_=gettext LDFLAGS = -lgtk-3 \ -lgobject-2.0 \ -lglib-2.0 ######################################################################## # Phony targets .PHONY: all debug lang paramano-extra clean strip install ######################################################################## ######################################################################## # Make entire suite all: paramano paramano-set lang paramano-extra ######################################################################## ######################################################################## # Make entire suite, with a huge amount of debug messages compiled-in # Seriously, don't use this feature unless you're actually having a # bug. It'll flood your system journal with repetitive, boring drivel debug: make all CFLAGS="$(CFLAGS) -DDEBUG" ######################################################################## ######################################################################## # Make main paramano system tray program paramano: bat_tray.o \ common.o \ config_file.o \ defaults.o \ getcore.o \ getfreq.o \ getgov.o \ reload.o \ paramano.o \ tray.o \ paramano_set_interface.o $(CC) -o $@ $^ $(LDFLAGS) ######################################################################## ######################################################################## # Make paramano-set utility paramano-set: \ paramano_set.o \ common.o \ getcore.o \ getfreq.o \ getgov.o $(CC) -o $@ $? $(LDFLAGS) ######################################################################## ######################################################################## %.o: %.c $(DEPS) $(CC) -c -o $@ $< $(CFLAGS) $(DEFS) ######################################################################## ######################################################################## # Make language file(s) lang: msgfmt -c -o lc/fr.mo lc/fr.po ######################################################################## ######################################################################## # Prepare template config file paramano-extra: for file in paramano.conf paramano.desktop ; do \ sed -e 's:SHAREDIR:$(SHAREDIR):g' \ -e 's:PARAMANO_CONF:$(PARAMANO_CONF):g' \ -e 's:PARAMANO:$(PARAMANO):g' \ $$file.src > $$file ; \ done ######################################################################## ######################################################################## # Strip all symbols from binaries strip: strip -s paramano paramano-set ######################################################################## ######################################################################## # Remove generated files clean: rm -f paramano paramano-set *.o lc/*.mo paramano.conf paramano.desktop ######################################################################## ######################################################################## # Install entire suite install: mkdir -p "$(DESTDIR)/$(SHAREDIR)/paramano/" cp -r themes "$(DESTDIR)/$(SHAREDIR)/paramano/" install -Dm 644 lc/fr.mo "$(DESTDIR)/$(LOCALEDIR)/fr/LC_MESSAGES/paramano.mo" install -Dm 644 paramano.conf "$(DESTDIR)/$(PARAMANO_CONF)" install -Dm 644 paramano.desktop "$(DESTDIR)/etc/xdg/autostart/paramano.desktop" install -Dm 755 paramano "$(DESTDIR)/$(PARAMANO)" install -Dm 755 paramano-set "$(DESTDIR)/$(PARAMANO_SET)" # These provide some compatability with trayfreq ln -s paramano "$$(dirname $(DESTDIR)/$(PARAMANO))/trayfreq" ln -s paramano-set "$$(dirname $(DESTDIR)/$(PARAMANO))/trayfreq-set" ########################################################################