58 lines
1.5 KiB
Makefile
58 lines
1.5 KiB
Makefile
CC=gcc
|
|
CFLAGS=-Wall -fPIC -O3 -ansi -pedantic-errors -pthread
|
|
LDFLAGS=-lm
|
|
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
|
|
@$(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 $@
|
|
|
|
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
|