131 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
| # Copyright (c) 2015, Louis P. Santillan <lpsantil@gmail.com>
 | |
| # All rights reserved.
 | |
| # See LICENSE for licensing details.
 | |
| DESTDIR ?= /opt/local
 | |
| 
 | |
| # Pulled the code below from lib/Makefile.  Might be nicer to derive this somehow without sed
 | |
| # Version numbers
 | |
| VERSION ?= 129
 | |
| RELEASE ?= r$(VERSION)
 | |
| LIBVER_MAJOR=$(shell sed -n '/define LZ4_VERSION_MAJOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h)
 | |
| LIBVER_MINOR=$(shell sed -n '/define LZ4_VERSION_MINOR/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h)
 | |
| LIBVER_PATCH=$(shell sed -n '/define LZ4_VERSION_RELEASE/s/.*[[:blank:]]\([0-9][0-9]*\).*/\1/p' < lib/lz4.h)
 | |
| LIBVER=$(LIBVER_MAJOR).$(LIBVER_MINOR).$(LIBVER_PATCH)
 | |
| 
 | |
| ######################################################################
 | |
| 
 | |
| CROSS ?= i586-pc-msdosdjgpp
 | |
| CC = $(CROSS)-gcc
 | |
| AR = $(CROSS)-ar
 | |
| LD = $(CROSS)-gcc
 | |
| 
 | |
| CFLAGS ?= -O3 -std=gnu99 -Wall -Wextra -Wundef -Wshadow -Wcast-qual -Wcast-align -Wstrict-prototypes -pedantic -DLZ4_VERSION=\"$(RELEASE)\"
 | |
| LDFLAGS ?= -s
 | |
| SRC = programs/bench.c programs/lz4io.c programs/lz4cli.c
 | |
| OBJ = $(SRC:.c=.o)
 | |
| SDEPS = $(SRC:.c=.d)
 | |
| IDIR = lib
 | |
| EDIR = .
 | |
| EXE = lz4.exe
 | |
| LNK = lz4
 | |
| LDIR = lib
 | |
| LSRC = lib/lz4.c lib/lz4hc.c lib/lz4frame.c lib/xxhash.c
 | |
| INC = $(LSRC:.c=.h)
 | |
| LOBJ = $(LSRC:.c=.o)
 | |
| LSDEPS = $(LSRC:.c=.d)
 | |
| LIB = $(LDIR)/lib$(LNK).a
 | |
| 
 | |
| # Since LDFLAGS defaults to "-s", probably better to override unless
 | |
| # you have a default you would like to maintain
 | |
| ifeq ($(WITH_DEBUG), 1)
 | |
| 	CFLAGS += -g
 | |
| 	LDFLAGS += -g
 | |
| endif
 | |
| 
 | |
| # Since LDFLAGS defaults to "-s", probably better to override unless
 | |
| # you have a default you would like to maintain
 | |
| ifeq ($(WITH_PROFILING), 1)
 | |
| 	CFLAGS += -pg
 | |
| 	LDFLAGS += -pg
 | |
| endif
 | |
| 
 | |
| %.o: %.c $(INC) Makefile
 | |
| 	$(CC) $(CFLAGS) -MMD -MP -I$(IDIR) -c $< -o $@
 | |
| 
 | |
| %.exe: %.o $(LIB) Makefile
 | |
| 	$(LD) $< -L$(LDIR) -l$(LNK) $(LDFLAGS) $(LIBDEP) -o $@
 | |
| 
 | |
| ######################################################################
 | |
| ######################## DO NOT MODIFY BELOW #########################
 | |
| ######################################################################
 | |
| 
 | |
| .PHONY: all install uninstall showconfig gstat gpush
 | |
| 
 | |
| all: $(LIB) $(EXE)
 | |
| 
 | |
| $(LIB): $(LOBJ)
 | |
| 	$(AR) -rcs $@ $^
 | |
| 
 | |
| $(EXE): $(LOBJ) $(OBJ)
 | |
| 	$(LD) $(LDFLAGS) $(LOBJ) $(OBJ) -o $(EDIR)/$@
 | |
| 
 | |
| clean:
 | |
| 	rm -f $(OBJ) $(EXE) $(LOBJ) $(LIB) *.tmp $(SDEPS) $(LSDEPS) $(TSDEPS)
 | |
| 
 | |
| install: $(INC) $(LIB) $(EXE)
 | |
| 	mkdir -p $(DESTDIR)/bin $(DESTDIR)/include $(DESTDIR)/lib
 | |
| 	rm -f .footprint
 | |
| 	echo $(DESTDIR)/bin/$(EXE) >> .footprint
 | |
| 	cp -v $(EXE) $(DESTDIR)/bin/
 | |
| 	@for T in $(LIB); \
 | |
| 	do ( \
 | |
| 		echo $(DESTDIR)/$$T >> .footprint; \
 | |
| 		cp -v --parents $$T $(DESTDIR) \
 | |
| 	); done
 | |
| 	@for T in $(INC); \
 | |
| 	do ( \
 | |
| 		echo $(DESTDIR)/include/`basename -a $$T` >> .footprint; \
 | |
| 		cp -v $$T $(DESTDIR)/include/ \
 | |
| 	); done
 | |
| 
 | |
| uninstall: .footprint
 | |
| 	@for T in $(shell cat .footprint); do rm -v $$T; done
 | |
| 
 | |
| -include $(SDEPS) $(LSDEPS)
 | |
| 
 | |
| showconfig:
 | |
| 	@echo "PWD="$(PWD)
 | |
| 	@echo "VERSION="$(VERSION)
 | |
| 	@echo "RELEASE="$(RELEASE)
 | |
| 	@echo "LIBVER_MAJOR="$(LIBVER_MAJOR)
 | |
| 	@echo "LIBVER_MINOR="$(LIBVER_MINOR)
 | |
| 	@echo "LIBVER_PATCH="$(LIBVER_PATCH)
 | |
| 	@echo "LIBVER="$(LIBVER)
 | |
| 	@echo "CROSS="$(CROSS)
 | |
| 	@echo "CC="$(CC)
 | |
| 	@echo "AR="$(AR)
 | |
| 	@echo "LD="$(LD)
 | |
| 	@echo "DESTDIR="$(DESTDIR)
 | |
| 	@echo "CFLAGS="$(CFLAGS)
 | |
| 	@echo "LDFLAGS="$(LDFLAGS)
 | |
| 	@echo "SRC="$(SRC)
 | |
| 	@echo "OBJ="$(OBJ)
 | |
| 	@echo "IDIR="$(IDIR)
 | |
| 	@echo "INC="$(INC)
 | |
| 	@echo "EDIR="$(EDIR)
 | |
| 	@echo "EXE="$(EXE)
 | |
| 	@echo "LDIR="$(LDIR)
 | |
| 	@echo "LSRC="$(LSRC)
 | |
| 	@echo "LOBJ="$(LOBJ)
 | |
| 	@echo "LNK="$(LNK)
 | |
| 	@echo "LIB="$(LIB)
 | |
| 	@echo "SDEPS="$(SDEPS)
 | |
| 	@echo "LSDEPS="$(LSDEPS)
 | |
| 
 | |
| gstat:
 | |
| 	git status
 | |
| 
 | |
| gpush:
 | |
| 	git commit
 | |
| 	git push
 |