65 lines
1.8 KiB
Makefile
65 lines
1.8 KiB
Makefile
CC=gcc
|
|
CFLAGS=-Wall -g -fPIC -O3 -pthread
|
|
CPPFLAGS=-pedantic -std=c++11
|
|
LDFLAGS=-lm -lstdc++
|
|
PREFIX=/usr/local
|
|
|
|
WINDOWS_CC=x86_64-w64-mingw32-gcc
|
|
WINDOWS_CFLAGS= -Wall -O3 -ansi -pedantic-errors -pthread
|
|
WINDOWS_PLATFORM= windows
|
|
|
|
.DEFAULT_GOAL := build/opt-pricer
|
|
|
|
build/opt-pricer : src/opt-pricer.c build/depends/linux/gbm.o build/depends/linux/black_scholes.o build/depends/linux/utils.o build/depends/linux/sobol.o build/depends/linux/asa241.o
|
|
@$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/gbm.o : src/gbm_mc.c | folders
|
|
@$(CC) $(CFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/black_scholes.o : src/black_scholes.c | folders
|
|
@$(CC) $(CFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/utils.o : src/utils.c | folders
|
|
@$(CC) $(CFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/strptime.o : src/strptime.c | folders
|
|
@$(CC) $(CFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/asa241.o : src/asa241.c | folders
|
|
@$(CC) $(CFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
build/depends/%/sobol.o : src/sobol.cpp | folders
|
|
@$(CC) $(CFLAGS) $(CPPFLAGS) -c $^ $(LDFLAGS) -o $@
|
|
|
|
folders:
|
|
@mkdir -p build
|
|
@mkdir -p build/depends
|
|
@mkdir -p build/depends/linux
|
|
@mkdir -p build/depends/windows
|
|
|
|
|
|
build/opt-pricer.exe : CC=$(WINDOWS_CC)
|
|
build/opt-pricer.exe : CFLAGS=$(WINDOWS_CFLAGS)
|
|
build/opt-pricer.exe : src/opt-pricer.c build/depends/windows/gbm.o build/depends/windows/black_scholes.o build/depends/windows/utils.o build/depends/windows/strptime.o
|
|
@$(CC) $(CFLAGS) $^ $(LDFLAGS) -o $@
|
|
|
|
|
|
.PHONY: windows
|
|
windows: build/opt-pricer.exe
|
|
|
|
.PHONY: install
|
|
install : build/opt-pricer
|
|
@mkdir -p $(DESTDIR)$(PREFIX)/bin
|
|
@cp $< $(DESTDIR)$(PREFIX)/bin/opt-pricer
|
|
@rm -f $<
|
|
|
|
.PHONY: uninstall
|
|
uninstall :
|
|
@rm -f $(DESTDIR)$(PREFIX)/bin/opt-pricer
|
|
|
|
.PHONY: clean
|
|
clean :
|
|
@rm -rf build
|
|
@mkdir build
|
|
@mkdir build/depends
|