1*27162e4eSAndroid Build Coastguard Worker# Copyright (c) 2015, Louis P. Santillan <[email protected]> 2*27162e4eSAndroid Build Coastguard Worker# All rights reserved. 3*27162e4eSAndroid Build Coastguard Worker# See LICENSE for licensing details. 4*27162e4eSAndroid Build Coastguard WorkerDESTDIR ?= /opt/local 5*27162e4eSAndroid Build Coastguard Worker 6*27162e4eSAndroid Build Coastguard Worker# Pulled the code below from lib/Makefile. Might be nicer to derive this somehow without sed 7*27162e4eSAndroid Build Coastguard Worker# Version numbers 8*27162e4eSAndroid Build Coastguard WorkerVERSION ?= 129 9*27162e4eSAndroid Build Coastguard WorkerRELEASE ?= r$(VERSION) 10*27162e4eSAndroid Build Coastguard WorkerLIBVER_MAJOR=$(shell sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 11*27162e4eSAndroid Build Coastguard WorkerLIBVER_MINOR=$(shell sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 12*27162e4eSAndroid Build Coastguard WorkerLIBVER_PATCH=$(shell sed -n '/define[[:blank:]][[:blank:]]*LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 13*27162e4eSAndroid Build Coastguard WorkerLIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH) 14*27162e4eSAndroid Build Coastguard Worker 15*27162e4eSAndroid Build Coastguard Worker###################################################################### 16*27162e4eSAndroid Build Coastguard Worker 17*27162e4eSAndroid Build Coastguard WorkerCROSS ?= i586-pc-msdosdjgpp 18*27162e4eSAndroid Build Coastguard WorkerCC = $(CROSS)-gcc 19*27162e4eSAndroid Build Coastguard WorkerAR = $(CROSS)-ar 20*27162e4eSAndroid Build Coastguard WorkerLD = $(CROSS)-gcc 21*27162e4eSAndroid Build Coastguard Worker 22*27162e4eSAndroid Build Coastguard WorkerCFLAGS ?= -O3 -std=gnu99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -Wpedantic -DLZ4_VERSION=\"$(RELEASE)\" 23*27162e4eSAndroid Build Coastguard WorkerLDFLAGS ?= -s 24*27162e4eSAndroid Build Coastguard WorkerSRC = programs/bench.c programs/lz4io.c programs/lz4cli.c 25*27162e4eSAndroid Build Coastguard WorkerOBJ = $(SRC:.c=.o) 26*27162e4eSAndroid Build Coastguard WorkerSDEPS = $(SRC:.c=.d) 27*27162e4eSAndroid Build Coastguard WorkerIDIR = lib 28*27162e4eSAndroid Build Coastguard WorkerEDIR = . 29*27162e4eSAndroid Build Coastguard WorkerEXE = lz4.exe 30*27162e4eSAndroid Build Coastguard WorkerLNK = lz4 31*27162e4eSAndroid Build Coastguard WorkerLDIR = lib 32*27162e4eSAndroid Build Coastguard WorkerLSRC = lib/lz4.c lib/lz4hc.c lib/lz4frame.c lib/xxhash.c 33*27162e4eSAndroid Build Coastguard WorkerINC = $(LSRC:.c=.h) 34*27162e4eSAndroid Build Coastguard WorkerLOBJ = $(LSRC:.c=.o) 35*27162e4eSAndroid Build Coastguard WorkerLSDEPS = $(LSRC:.c=.d) 36*27162e4eSAndroid Build Coastguard WorkerLIB = $(LDIR)/lib$(LNK).a 37*27162e4eSAndroid Build Coastguard Worker 38*27162e4eSAndroid Build Coastguard Worker# Since LDFLAGS defaults to "-s", probably better to override unless 39*27162e4eSAndroid Build Coastguard Worker# you have a default you would like to maintain 40*27162e4eSAndroid Build Coastguard Workerifeq ($(WITH_DEBUG), 1) 41*27162e4eSAndroid Build Coastguard Worker CFLAGS += -g 42*27162e4eSAndroid Build Coastguard Worker LDFLAGS += -g 43*27162e4eSAndroid Build Coastguard Workerendif 44*27162e4eSAndroid Build Coastguard Worker 45*27162e4eSAndroid Build Coastguard Worker# Since LDFLAGS defaults to "-s", probably better to override unless 46*27162e4eSAndroid Build Coastguard Worker# you have a default you would like to maintain 47*27162e4eSAndroid Build Coastguard Workerifeq ($(WITH_PROFILING), 1) 48*27162e4eSAndroid Build Coastguard Worker CFLAGS += -pg 49*27162e4eSAndroid Build Coastguard Worker LDFLAGS += -pg 50*27162e4eSAndroid Build Coastguard Workerendif 51*27162e4eSAndroid Build Coastguard Worker 52*27162e4eSAndroid Build Coastguard Worker%.o: %.c $(INC) Makefile 53*27162e4eSAndroid Build Coastguard Worker $(CC) $(CFLAGS) -MMD -MP -I$(IDIR) -c $< -o $@ 54*27162e4eSAndroid Build Coastguard Worker 55*27162e4eSAndroid Build Coastguard Worker%.exe: %.o $(LIB) Makefile 56*27162e4eSAndroid Build Coastguard Worker $(LD) $< -L$(LDIR) -l$(LNK) $(LDFLAGS) $(LIBDEP) -o $@ 57*27162e4eSAndroid Build Coastguard Worker 58*27162e4eSAndroid Build Coastguard Worker###################################################################### 59*27162e4eSAndroid Build Coastguard Worker######################## DO NOT MODIFY BELOW ######################### 60*27162e4eSAndroid Build Coastguard Worker###################################################################### 61*27162e4eSAndroid Build Coastguard Worker 62*27162e4eSAndroid Build Coastguard Worker.PHONY: all install uninstall showconfig gstat gpush 63*27162e4eSAndroid Build Coastguard Worker 64*27162e4eSAndroid Build Coastguard Workerall: $(LIB) $(EXE) 65*27162e4eSAndroid Build Coastguard Worker 66*27162e4eSAndroid Build Coastguard Worker$(LIB): $(LOBJ) 67*27162e4eSAndroid Build Coastguard Worker $(AR) -rcs $@ $^ 68*27162e4eSAndroid Build Coastguard Worker 69*27162e4eSAndroid Build Coastguard Worker$(EXE): $(LOBJ) $(OBJ) 70*27162e4eSAndroid Build Coastguard Worker $(LD) $(LDFLAGS) $(LOBJ) $(OBJ) -o $(EDIR)/$@ 71*27162e4eSAndroid Build Coastguard Worker 72*27162e4eSAndroid Build Coastguard Workerclean: 73*27162e4eSAndroid Build Coastguard Worker rm -f $(OBJ) $(EXE) $(LOBJ) $(LIB) *.tmp $(SDEPS) $(LSDEPS) $(TSDEPS) 74*27162e4eSAndroid Build Coastguard Worker 75*27162e4eSAndroid Build Coastguard Workerinstall: $(INC) $(LIB) $(EXE) 76*27162e4eSAndroid Build Coastguard Worker mkdir -p $(DESTDIR)/bin $(DESTDIR)/include $(DESTDIR)/lib 77*27162e4eSAndroid Build Coastguard Worker rm -f .footprint 78*27162e4eSAndroid Build Coastguard Worker echo $(DESTDIR)/bin/$(EXE) >> .footprint 79*27162e4eSAndroid Build Coastguard Worker cp -v $(EXE) $(DESTDIR)/bin/ 80*27162e4eSAndroid Build Coastguard Worker @for T in $(LIB); \ 81*27162e4eSAndroid Build Coastguard Worker do ( \ 82*27162e4eSAndroid Build Coastguard Worker echo $(DESTDIR)/$$T >> .footprint; \ 83*27162e4eSAndroid Build Coastguard Worker cp -v --parents $$T $(DESTDIR) \ 84*27162e4eSAndroid Build Coastguard Worker ); done 85*27162e4eSAndroid Build Coastguard Worker @for T in $(INC); \ 86*27162e4eSAndroid Build Coastguard Worker do ( \ 87*27162e4eSAndroid Build Coastguard Worker echo $(DESTDIR)/include/`basename -a $$T` >> .footprint; \ 88*27162e4eSAndroid Build Coastguard Worker cp -v $$T $(DESTDIR)/include/ \ 89*27162e4eSAndroid Build Coastguard Worker ); done 90*27162e4eSAndroid Build Coastguard Worker 91*27162e4eSAndroid Build Coastguard Workeruninstall: .footprint 92*27162e4eSAndroid Build Coastguard Worker @for T in $(shell cat .footprint); do rm -v $$T; done 93*27162e4eSAndroid Build Coastguard Worker 94*27162e4eSAndroid Build Coastguard Worker-include $(SDEPS) $(LSDEPS) 95*27162e4eSAndroid Build Coastguard Worker 96*27162e4eSAndroid Build Coastguard Workershowconfig: 97*27162e4eSAndroid Build Coastguard Worker @echo "PWD="$(PWD) 98*27162e4eSAndroid Build Coastguard Worker @echo "VERSION="$(VERSION) 99*27162e4eSAndroid Build Coastguard Worker @echo "RELEASE="$(RELEASE) 100*27162e4eSAndroid Build Coastguard Worker @echo "LIBVER_MAJOR="$(LIBVER_MAJOR) 101*27162e4eSAndroid Build Coastguard Worker @echo "LIBVER_MINOR="$(LIBVER_MINOR) 102*27162e4eSAndroid Build Coastguard Worker @echo "LIBVER_PATCH="$(LIBVER_PATCH) 103*27162e4eSAndroid Build Coastguard Worker @echo "LIBVER="$(LIBVER) 104*27162e4eSAndroid Build Coastguard Worker @echo "CROSS="$(CROSS) 105*27162e4eSAndroid Build Coastguard Worker @echo "CC="$(CC) 106*27162e4eSAndroid Build Coastguard Worker @echo "AR="$(AR) 107*27162e4eSAndroid Build Coastguard Worker @echo "LD="$(LD) 108*27162e4eSAndroid Build Coastguard Worker @echo "DESTDIR="$(DESTDIR) 109*27162e4eSAndroid Build Coastguard Worker @echo "CFLAGS="$(CFLAGS) 110*27162e4eSAndroid Build Coastguard Worker @echo "LDFLAGS="$(LDFLAGS) 111*27162e4eSAndroid Build Coastguard Worker @echo "SRC="$(SRC) 112*27162e4eSAndroid Build Coastguard Worker @echo "OBJ="$(OBJ) 113*27162e4eSAndroid Build Coastguard Worker @echo "IDIR="$(IDIR) 114*27162e4eSAndroid Build Coastguard Worker @echo "INC="$(INC) 115*27162e4eSAndroid Build Coastguard Worker @echo "EDIR="$(EDIR) 116*27162e4eSAndroid Build Coastguard Worker @echo "EXE="$(EXE) 117*27162e4eSAndroid Build Coastguard Worker @echo "LDIR="$(LDIR) 118*27162e4eSAndroid Build Coastguard Worker @echo "LSRC="$(LSRC) 119*27162e4eSAndroid Build Coastguard Worker @echo "LOBJ="$(LOBJ) 120*27162e4eSAndroid Build Coastguard Worker @echo "LNK="$(LNK) 121*27162e4eSAndroid Build Coastguard Worker @echo "LIB="$(LIB) 122*27162e4eSAndroid Build Coastguard Worker @echo "SDEPS="$(SDEPS) 123*27162e4eSAndroid Build Coastguard Worker @echo "LSDEPS="$(LSDEPS) 124*27162e4eSAndroid Build Coastguard Worker 125*27162e4eSAndroid Build Coastguard Workergstat: 126*27162e4eSAndroid Build Coastguard Worker git status 127*27162e4eSAndroid Build Coastguard Worker 128*27162e4eSAndroid Build Coastguard Workergpush: 129*27162e4eSAndroid Build Coastguard Worker git commit 130*27162e4eSAndroid Build Coastguard Worker git push 131