PKGBUILDs/core/libdownload/Makefile
2009-09-27 09:51:31 -05:00

95 lines
2.4 KiB
Makefile

prefix = /opt
DESTDIR =
DEBUG = false
ENABLE_HTTPS = true
CFLAGS = -O2 -pipe -I. -DINET6 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
WARNINGS = -Wall -Wstrict-prototypes -Wsign-compare -Wchar-subscripts \
-Wpointer-arith -Wcast-align -Wsign-compare
CFLAGS += $(WARNINGS)
ifeq ($(strip $(DEBUG)), true)
CFLAGS += -g -DDEBUG
else
CFLAGS += -UDEBUG
endif
ifeq ($(strip $(ENALE_HTTPS)),true)
CFLAGS += -DWITH_SSL
LDFLAGS += -lssl -lcrypto
endif
CC = gcc
LD = gcc
AR = ar
RANLIB = ranlib
INSTALL = install -c -D
OBJS= download.o common.o ftp.o http.o file.o
INCS= download.h common.h
GEN = ftperr.h httperr.h
MAN = libdownload.3
#pretty print!
E = @/bin/echo
Q = @
all: libdownload.so libdownload.a
$(E) " built with: " $(CFLAGS)
.PHONY: all
%.o: %.c $(INCS) $(GEN)
$(E) " compile " $@
$(Q) $(CC) $(CFLAGS) -c $<
ftperr.h: ftp.errors
$(E) " generate " $@
@/bin/echo "static struct downloaderr _ftp_errlist[] = {" > $@
@cat $< \
| grep -v ^# \
| sort \
| while read NUM CAT STRING; do \
/bin/echo " { $${NUM}, DLERR_$${CAT}, \"$${STRING}\" },"; \
done >> $@
@/bin/echo -e " { -1, DLERR_UNKNOWN, \"Unknown FTP error\" }\n};" >> $@
httperr.h: http.errors
$(E) " generate " $@
@/bin/echo "static struct downloaderr _http_errlist[] = {" > $@
@cat $< \
| grep -v ^# \
| sort \
| while read NUM CAT STRING; do \
/bin/echo " { $${NUM}, DLERR_$${CAT}, \"$${STRING}\" },"; \
done >> $@
@/bin/echo -e " { -1, DLERR_UNKNOWN, \"Unknown HTTP error\" }\n};" >> $@
libdownload.so: $(GEN) $(INCS) $(OBJS)
$(E) " build " $@
$(Q) rm -f $@
$(Q) $(LD) $(LDFLAGS) *.o -shared -o $@
libdownload.a: $(GEN) $(INCS) $(OBJS)
$(E) " build " $@
$(Q) rm -f $@
$(Q) $(AR) rcs $@ *.o
$(Q) $(RANLIB) $@
clean:
$(E) " clean "
$(Q) rm -f libdownload.so libdownload.a *.o $(GEN)
.PHONY: clean
install: all
$(Q) $(INSTALL) -m 755 libdownload.so $(DESTDIR)$(prefix)/lib/libdownload.so
$(Q) $(INSTALL) -m 644 libdownload.a $(DESTDIR)$(prefix)/lib/libdownload.a
$(Q) $(INSTALL) -m 644 download.h $(DESTDIR)$(prefix)/include/download.h
$(Q) $(INSTALL) -m 644 libdownload.3 $(DESTDIR)$(prefix)/man/man3/libdownload.3
.PHONY: install
uninstall:
$(Q) rm -f $(DESTDIR)$(prefix)/lib/libdownload.so
$(Q) rm -f $(DESTDIR)$(prefix)/lib/libdownload.a
$(Q) rm -f $(DESTDIR)$(prefix)/include/download.h
$(Q) rm -f $(DESTDIR)$(prefix)/man/man3/libdownload.3
.PHONY: uninstall