# Makefile for hcalc. Requires GNU make. # Users and packagers, feel free to override these: CC = gcc CFLAGS = -Wall -g LIBS = DESTDIR = PREFIX = /usr BINDIR = $(PREFIX)/bin SHAREDIR = $(PREFIX)/share MANDIR = $(SHAREDIR)/man MAN1DIR = $(MANDIR)/man1 DOCDIR = $(SHAREDIR)/doc/$(PROJ) ICONDIR = $(SHAREDIR)/icons/hicolor DESKTOPDIR = $(SHAREDIR)/applications INSTALL = install INSTALL_DATA = $(INSTALL) -m0644 INSTALL_PROG = $(INSTALL) -s -m0755 ifeq ($(shell whoami),root) INSTALL_USER = -o root -g root else INSTALL_USER = endif MKDIR_P = mkdir -p GZIP = gzip # End of user-ovverideable stuff. No user-serviceable parts below this line. PROJ = hcalc MANPAGE = $(PROJ).1 DOCS = README CHANGES TODO COPYING OBJS = \ hcalc.o \ input.o \ setupx.o \ images.o \ draw.o \ config.o all: $(PROJ) $(MANPAGE) hcalc.o: hcalc.c hcalc.h input.o: input.c hcalc.h setupx.o: setupx.c hcalc.h draw.o: draw.c hcalc.h config.o: config.c hcalc.h images.o: images.c hcalc.h xpm/*.xpm $(PROJ): $(OBJS) $(CC) -o $@ $^ $(LDFLAGS) -lXpm -lX11 $(LIBS) $(MANPAGE): $(PROJ).rst rst2man $(PROJ).rst > $(MANPAGE) clean: rm -f *.o *.d *~ \#* $(PROJ) core install: all $(MKDIR_P) $(DESTDIR)$(BINDIR) $(DESTDIR)$(SHAREDIR) \ $(DESTDIR)$(MAN1DIR) $(DESTDIR)$(DOCDIR) $(DESTDIR)$(DESKTOPDIR) $(INSTALL_PROG) $(INSTALL_USER) $(PROJ) $(DESTDIR)$(BINDIR) $(INSTALL_DATA) $(INSTALL_USER) $(MANPAGE) $(DESTDIR)$(MAN1DIR) $(INSTALL_DATA) $(INSTALL_USER) $(DOCS) $(DESTDIR)$(DOCDIR) $(INSTALL_DATA) $(INSTALL_USER) desktop/$(PROJ).desktop $(DESTDIR)$(DESKTOPDIR) for i in 16x16 22x22 32x32 48x48 64x64; do \ $(MKDIR_P) $(DESTDIR)$(ICONDIR)/$$i/apps ; \ $(INSTALL_DATA) $(INSTALL_USER) icons/$$i/apps/$(PROJ).png $(DESTDIR)$(ICONDIR)/$$i/apps ; \ done $(GZIP) -9f $(DESTDIR)$(MAN1DIR)/$(MANPAGE) .PHONY: all clean install