Codebase list hotpatch / master Makefile
master

Tree @master (Download .tar.gz)

Makefile @masterraw · history · blame

### hotpatch is a dll injection strategy
### Copyright (c) 2010-2011, Vikas Naresh Kumar, Selective Intellect LLC
### All rights reserved.
### 
### Redistribution and use in source and binary forms, with or without
### modification, are permitted provided that the following conditions are met:
### 
###     * Redistributions of source code must retain the above copyright
###       notice, this list of conditions and the following disclaimer.
### 
###     * Redistributions in binary form must reproduce the above copyright
###       notice, this list of conditions and the following disclaimer in the
###       documentation and/or other materials provided with the distribution.
### 
###     * Neither the name of Selective Intellect LLC nor the
###       names of its contributors may be used to endorse or promote products
###       derived from this software without specific prior written permission.
### 
### THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
### ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
### WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
### DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
### DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
### (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
### LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
### ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
### (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
### SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
###
CMAKE=$(shell which cmake)
CTEST=$(shell which ctest)
PREFIX?=/usr
ARCH=$(shell uname -m)

default: release
.PHONY: default

all: release debug
.PHONY: all

clean: cleanrelease
.PHONY: clean

test: testrelease
.PHONY: test

install: installrelease
.PHONY: install

release:
	@mkdir -p Release
	@cd Release && $(CMAKE) -DARCH=$(ARCH) -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(PREFIX) ..
	@cd Release && $(MAKE)
	@echo "Release Build complete"
.PHONY: release

debug:
	@mkdir -p Debug
	@cd Debug && $(CMAKE) -DARCH=$(ARCH) -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$(PREFIX) ..
	@cd Debug && $(MAKE)
	@echo "Debug Build complete"
.PHONY: debug

cleanrelease:
	@if test -d Release; then cd Release && $(MAKE) clean; fi
	@if test -d Release; then cd Release && rm -f CMakeCache.txt; fi
	@if test -d Release; then echo "Release Cleaning complete"; else echo "Nothing to clean"; fi
.PHONY: cleanrelease

cleandebug:
	@if test -d Debug; then cd Debug && $(MAKE) clean; fi
	@if test -d Debug; then cd Debug && rm -f CMakeCache.txt; fi
	@if test -d Debug; then echo "Debug Cleaning complete"; else echo "Nothing to clean"; fi
.PHONY: cleandebug

testrelease: release
	cd Release && $(CTEST)
.PHONY: testrelease

testdebug: debug
	cd Debug && $(CTEST)
.PHONY: testdebug

installrelease: release
	@cd Release && $(CMAKE) -DARCH=$(ARCH) -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$(PREFIX) ..
	@cd Release && $(MAKE) install
	@echo "Release installation complete"
.PHONY: installrelease

installdebug: debug
	@cd Debug && $(CMAKE) -DARCH=$(ARCH) -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=$(PREFIX) ..
	@cd Debug && $(MAKE) install
	@echo "Debug installation complete"
.PHONY: installdebug