sdhcp

simple dhcp client
git clone git://git.2f30.org/sdhcp
Log | Files | Refs | LICENSE

commit 61b1942be50463eb03c55c055df4b8f62a4549e2
parent 0d4e3b57668dbabd501b83f2228d18b0a53598d0
Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date:   Fri, 25 Apr 2014 20:52:34 +0200

use suckless style makefile

- add config.mk,
- use -ansi and -D_BSD_SOURCE (needed for IFF_*) for CFLAGS.

Signed-off-by: Hiltjo Posthuma <hiltjo@codemadness.org>

Diffstat:
MMakefile | 69++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
Aconfig.mk | 13+++++++++++++
2 files changed, 71 insertions(+), 11 deletions(-)

diff --git a/Makefile b/Makefile @@ -1,17 +1,64 @@ -DESTDIR= -MANDIR = /usr/share/man +include config.mk -sdhcp: sdhcp.c - $(CC) -O2 -o $@ sdhcp.c -static -Wall -ansi +.POSIX: +.SUFFIXES: .c .o -debug: sdhcp.c debug.c - $(CC) -DDEBUG -o sdhcp sdhcp.c -static -O0 -g -Wall -ansi +HDR = util.h +LIB = \ + util/strlcpy.o -all: sdhcp +SRC = sdhcp.c + +OBJ = $(SRC:.c=.o) $(LIB) +BIN = $(SRC:.c=) +MAN = $(SRC:.c=.8) + +all: options binlib + +options: + @echo sdhcp build options: + @echo "CFLAGS = ${CFLAGS}" + @echo "LDFLAGS = ${LDFLAGS}" + @echo "CC = ${CC}" + +binlib: util.a + $(MAKE) bin + +bin: $(BIN) + +$(OBJ): $(HDR) config.mk + +.o: + @echo LD $@ + @$(LD) -o $@ $< util.a $(LDFLAGS) + +.c.o: + @echo CC $< + @$(CC) -c -o $@ $< $(CFLAGS) + +util.a: $(LIB) + @echo AR $@ + @$(AR) -r -c $@ $(LIB) + @ranlib $@ install: all - install -s sdhcp $(DESTDIR)/sbin - gzip -c sdhcp.8 > $(DESTDIR)$(MANDIR)/man8/sdhcp.8.gz - + @echo installing executables to $(DESTDIR)$(PREFIX)/sbin + @mkdir -p $(DESTDIR)$(PREFIX)/sbin + @cp -f $(BIN) $(DESTDIR)$(PREFIX)/sbin + @cd $(DESTDIR)$(PREFIX)/sbin && chmod 755 $(BIN) + @echo installing manual pages to $(DESTDIR)$(MANPREFIX)/man8 + @mkdir -p $(DESTDIR)$(MANPREFIX)/man8 + @for m in $(MAN); do sed "s/VERSION/$(VERSION)/g" < "$$m" > $(DESTDIR)$(MANPREFIX)/man8/"$$m"; done + @cd $(DESTDIR)$(MANPREFIX)/man8 && chmod 644 $(MAN) + +uninstall: + @echo removing executables from $(DESTDIR)$(PREFIX)/bin + @cd $(DESTDIR)$(PREFIX)/bin && rm -f $(BIN) + @echo removing manual pages from $(DESTDIR)$(MANPREFIX)/man8 + @cd $(DESTDIR)$(MANPREFIX)/man8 && rm -f $(MAN) + clean: - rm -f sdhcp ?*~ + @echo cleaning + @rm -f $(BIN) $(OBJ) + +.PHONY: all options clean install uninstall diff --git a/config.mk b/config.mk @@ -0,0 +1,13 @@ +# sdhcp version +VERSION = 0.1 + +PREFIX = /usr/local +DESTDIR = +MANPREFIX = $(PREFIX)/share/man + +#CC = gcc +#CC = musl-gcc +LD = $(CC) +CPPFLAGS = -D_BSD_SOURCE +CFLAGS = -g -Wall -ansi $(CPPFLAGS) +LDFLAGS = -g