54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Makefile
		
	
	
	
.DEFAULT_GOAL := build
 | 
						|
 | 
						|
PACKAGE_NAME := based
 | 
						|
CABAL := cabal
 | 
						|
BUILD_FLAGS := --builddir=dist-newstyle
 | 
						|
BUILD_DEV_FLAGS := --enable-tests --enable-benchmarks
 | 
						|
# STATIC_FLAGS := --ghc-options="-optl-static"
 | 
						|
STATIC_FLAGS := --enable-executable-static -O2
 | 
						|
STRIP := strip 
 | 
						|
STRIP_FLAGS := --strip-all
 | 
						|
INSTALL_DIR := /usr/local/bin
 | 
						|
INSTALL_FLAGS := --overwrite-policy=always
 | 
						|
BIN_NAME := $(PACKAGE_NAME)
 | 
						|
 | 
						|
.PHONY: test
 | 
						|
 | 
						|
build:
 | 
						|
	$(CABAL) v2-build $(BUILD_FLAGS)
 | 
						|
 | 
						|
static-build:
 | 
						|
	$(CABAL) v2-build $(BUILD_FLAGS) $(STATIC_FLAGS)
 | 
						|
 | 
						|
dev-build:
 | 
						|
	$(CABAL) v2-build $(BUILD_FLAGS) $(BUILD_DEV_FLAGS)
 | 
						|
 | 
						|
strip:
 | 
						|
	$(STRIP) $(STRIP_FLAGS) $(realpath $(which $(PACKAGE_NAME)))
 | 
						|
 | 
						|
user-install:
 | 
						|
	$(CABAL) v2-install $(BUILD_FLAGS) $(INSTALL_FLAGS)
 | 
						|
	$(STRIP) $(STRIP_FLAGS) $(realpath $(which $(PACKAGE_NAME)))
 | 
						|
 | 
						|
install: user-install
 | 
						|
	install -m 755 $(shell cabal v2-exec which $(BIN_NAME)) $(INSTALL_DIR)/$(BIN_NAME)
 | 
						|
	$(STRIP) $(STRIP_FLAGS) $(realpath $(which $(PACKAGE_NAME)))
 | 
						|
	echo "$(BIN_NAME) installed to $(INSTALL_DIR)"
 | 
						|
 | 
						|
static-install: static-build user-install
 | 
						|
	install -m 755 $(shell cabal v2-exec which $(BIN_NAME)) $(INSTALL_DIR)/$(BIN_NAME)
 | 
						|
	$(STRIP) $(STRIP_FLAGS) $(realpath $(which $(PACKAGE_NAME)))
 | 
						|
	echo "$(BIN_NAME) installed to $(INSTALL_DIR)"
 | 
						|
 | 
						|
test:
 | 
						|
	$(CABAL) v2-test $(BUILD_FLAGS)
 | 
						|
 | 
						|
clean-artifacts:
 | 
						|
	$(CABAL) v2-clean
 | 
						|
 | 
						|
clean: clean-artifacts
 | 
						|
	rm -f $(INSTALL_DIR)/$(BIN_NAME) \
 | 
						|
	&& echo "$(BIN_NAME) removed from $(INSTALL_DIR)" \
 | 
						|
	|| echo "$(BIN_NAME) cannot be found in $(INSTALL_DIR)"
 | 
						|
 |