# where to install
-prefix := /usr/local
-libdir := $(prefix)/lib
-includedir := $(prefix)/include
-bindir := $(prefix)/bin
-mandir := $(prefix)/man/man1
+PREFIX ?= /usr/local
+libdir := $(PREFIX)/lib
+includedir := $(PREFIX)/include
+bindir := $(PREFIX)/bin
+mandir := $(PREFIX)/man/man1
objects := osl.o util.o rbtree.o sha1.o
fsck_objects := fsck.fsck.o osl.fsck.o util.fsck.o rbtree.fsck.o sha1.fsck.o fsck.cmdline.o
man_pages := oslfsck.1
INSTALL := install
-CC := gcc
+ifeq "$(origin CC)" "default"
+ CC := gcc
+endif
MKDIR := mkdir -p
RM := rm -f
LN := ln
# Darwin has its own idea on version numbers:
realname := lib$(libname).$(x).dylib
soname := $(realname)
- linkername := lib$(libname).so
+ linkername := lib$(libname).dylib
# The minor version number is an incremental number using the format
# X[.Y[.Z]]. To set the minor version number of a dynamic library, use
# the gcc -current_version option.
LDFLAGS += --shared
endif
-
all: $(realname) $(executables) $(man_pages)
Makefile.deps: $(wildcard *.c *.h)
$(CC) -MM -MG *.c > $@
$(CC) -c $(CPPFLAGS) $(CFLAGS) $(LIBCFLAGS) $<
fsck.cmdline.h fsck.cmdline.c: fsck.ggo Makefile
- gengetopt $$O \
+ gengetopt \
--conf-parser \
--unamed-opts=table \
--no-handle-version \
< $<
oslfsck: $(fsck_objects)
- $(CC) -o $@ $(fsck_objects) -lcrypto
+ $(CC) -o $@ $(fsck_objects)
oslfsck.1: oslfsck
help2man -h --detailed-help -N ./$< > $@
$(realname): $(objects)
- $(CC) $(LDFLAGS) -o $@ $(objects) -lcrypto
+ $(CC) $(LDFLAGS) -o $@ $(objects)
osl_errors.h: errlist
echo '/** public error codes of the osl library. */' > $@
rm -rf web/doxygen
install: all
- $(MKDIR) $(libdir) $(includedir)
+ $(MKDIR) $(libdir) $(includedir) $(mandir) $(bindir)
$(RM) $(libdir)/$(linkername)
$(LN) -s $(libdir)/$(soname) $(libdir)/$(linkername)
- $(INSTALL) -s -m 755 $(realname) $(libdir)
+ $(INSTALL) -m 755 $(realname) $(libdir)
$(INSTALL) -m 644 $(headers) $(includedir)
- $(INSTALL) -m 644 $(executables) $(bindir)
+ $(INSTALL) -m 755 $(executables) $(bindir)
$(INSTALL) -m 644 $(man_pages) $(mandir)
.PHONY: all clean install
web/%.1.html: %.1
man2html $< > $@
-web/osl.png: web/osl.pdf
- convert $< $@
+web/osl.png: web/osl.pdf Makefile
+ convert -scale 200x200 $< $@
web/index.html: web/oslfsck.1.html web/index.html.in INSTALL README
sed -e '/@README@/,$$d' web/index.html.in > $@