1a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# Copyright (c) 2015, Louis P. Santillan <lpsantil@gmail.com> 2a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# All rights reserved. 3a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# See LICENSE for licensing details. 4a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanDESTDIR ?= /opt/local 5a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 6a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# Pulled the code below from lib/Makefile. Might be nicer to derive this somehow without sed 7a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# Version numbers 8a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanVERSION ?= 129 9a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanRELEASE ?= r$(VERSION) 10a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLIBVER_MAJOR=$(shell sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 11a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLIBVER_MINOR=$(shell sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 12a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLIBVER_PATCH=$(shell sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h) 13a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH) 14a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 15a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan###################################################################### 16a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 17a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanCROSS ?= i586-pc-msdosdjgpp 18a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanCC = $(CROSS)-gcc 19a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanAR = $(CROSS)-ar 20a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLD = $(CROSS)-gcc 21a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 22a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanCFLAGS ?= -O3 -std=gnu99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -pedantic -DLZ4_VERSION=\"$(RELEASE)\" 23a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLDFLAGS ?= -s 24a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanSRC = programs/bench.c programs/lz4io.c programs/lz4cli.c 25a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanOBJ = $(SRC:.c=.o) 26a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanSDEPS = $(SRC:.c=.d) 27a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanIDIR = lib 28a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanEDIR = . 29a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanEXE = lz4.exe 30a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLNK = lz4 31a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLDIR = lib 32a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLSRC = lib/lz4.c lib/lz4hc.c lib/lz4frame.c lib/xxhash.c 33a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanINC = $(LSRC:.c=.h) 34a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLOBJ = $(LSRC:.c=.o) 35a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLSDEPS = $(LSRC:.c=.d) 36a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. SantillanLIB = $(LDIR)/lib$(LNK).a 37a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 38a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# Since LDFLAGS defaults to "-s", probably better to override unless 39a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# you have a default you would like to maintain 40a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanifeq ($(WITH_DEBUG), 1) 41a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan CFLAGS += -g 42a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan LDFLAGS += -g 43a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanendif 44a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 45a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# Since LDFLAGS defaults to "-s", probably better to override unless 46a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan# you have a default you would like to maintain 47a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanifeq ($(WITH_PROFILING), 1) 48a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan CFLAGS += -pg 49a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan LDFLAGS += -pg 50a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanendif 51a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 52a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan%.o: %.c $(INC) Makefile 53a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan $(CC) $(CFLAGS) -MMD -MP -I$(IDIR) -c $< -o $@ 54a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 55a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan%.exe: %.o $(LIB) Makefile 56a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan $(LD) $< -L$(LDIR) -l$(LNK) $(LDFLAGS) $(LIBDEP) -o $@ 57a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 58a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan###################################################################### 59a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan######################## DO NOT MODIFY BELOW ######################### 60a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan###################################################################### 61a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 62a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan.PHONY: all install uninstall showconfig gstat gpush 63a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 64a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanall: $(LIB) $(EXE) 65a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 66a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan$(LIB): $(LOBJ) 67a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan $(AR) -rcs $@ $^ 68a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 69a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan$(EXE): $(LOBJ) $(OBJ) 70a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan $(LD) $(LDFLAGS) $(LOBJ) $(OBJ) -o $(EDIR)/$@ 71a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 72a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanclean: 73a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan rm -f $(OBJ) $(EXE) $(LOBJ) $(LIB) *.tmp $(SDEPS) $(LSDEPS) $(TSDEPS) 74a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 75a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillaninstall: $(INC) $(LIB) $(EXE) 76a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan mkdir -p $(DESTDIR)/bin $(DESTDIR)/include $(DESTDIR)/lib 77a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan rm -f .footprint 78a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan echo $(DESTDIR)/bin/$(EXE) >> .footprint 79a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan cp -v $(EXE) $(DESTDIR)/bin/ 80a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @for T in $(LIB); \ 81a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan do ( \ 82a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan echo $(DESTDIR)/$$T >> .footprint; \ 83a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan cp -v --parents $$T $(DESTDIR) \ 84a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan ); done 85a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @for T in $(INC); \ 86a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan do ( \ 87a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan echo $(DESTDIR)/include/`basename -a $$T` >> .footprint; \ 88a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan cp -v $$T $(DESTDIR)/include/ \ 89a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan ); done 90a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 91a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanuninstall: .footprint 92a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @for T in $(shell cat .footprint); do rm -v $$T; done 93a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 94a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan-include $(SDEPS) $(LSDEPS) 95a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 96a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillanshowconfig: 97a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "PWD="$(PWD) 98a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "VERSION="$(VERSION) 99a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "RELEASE="$(RELEASE) 100a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LIBVER_MAJOR="$(LIBVER_MAJOR) 101a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LIBVER_MINOR="$(LIBVER_MINOR) 102a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LIBVER_PATCH="$(LIBVER_PATCH) 103a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LIBVER="$(LIBVER) 104a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "CROSS="$(CROSS) 105a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "CC="$(CC) 106a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "AR="$(AR) 107a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LD="$(LD) 108a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "DESTDIR="$(DESTDIR) 109a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "CFLAGS="$(CFLAGS) 110a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LDFLAGS="$(LDFLAGS) 111a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "SRC="$(SRC) 112a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "OBJ="$(OBJ) 113a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "IDIR="$(IDIR) 114a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "INC="$(INC) 115a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "EDIR="$(EDIR) 116a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "EXE="$(EXE) 117a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LDIR="$(LDIR) 118a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LSRC="$(LSRC) 119a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LOBJ="$(LOBJ) 120a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LNK="$(LNK) 121a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LIB="$(LIB) 122a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "SDEPS="$(SDEPS) 123a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan @echo "LSDEPS="$(LSDEPS) 124a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 125a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillangstat: 126a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan git status 127a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan 128a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillangpush: 129a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan git commit 130a3a479fc2b8f0d74f952a5676c29f07f9cf3c1b0Louis P. Santillan git push 131