Eigenmath/Makefile

130 lines
4.2 KiB
Makefile

prefix = sh3eb-elf-
as = $(prefix)as
cc = $(prefix)gcc
cxx = $(prefix)g++
objcopy = $(prefix)objcopy
wrapper = g1a-wrapper
flags = -m3 -mb -Os -nostdlib
cflags = -std=c11 -W -Wall -Wno-main -pedantic
cxxflags= -std=c++11 -W -Wall -Wno-main -pedantic
include = -Iinclude/fx -Iinclude
libs = -Llib -lgcc -lfx
name = eigenmath
target-g1a = $(name).g1a
# besselj and bessely and history good bye
file-src = $(addprefix src/, \
crt0.s syscalls.s \
main.cpp config.c console.c memory.c \
tex/libText.c tex/debug.c tex/math.c tex/disp_asm.s \
engine/abs.cpp engine/add.cpp engine/adj.cpp \
engine/alloc.cpp engine/append.cpp \
engine/arccos.cpp engine/arccosh.cpp \
engine/arcsin.cpp engine/arcsinh.cpp \
engine/arctan.cpp engine/arctanh.cpp \
engine/arg.cpp engine/atomize.cpp \
engine/bake.cpp \
engine/bignum.cpp \
engine/binomial.cpp engine/ceiling.cpp \
engine/choose.cpp engine/circexp.cpp \
engine/clear.cpp engine/clock.cpp \
engine/coeff.cpp engine/cofactor.cpp \
engine/condense.cpp engine/conj.cpp \
engine/cons.cpp engine/contract.cpp \
engine/cos.cpp engine/cosh.cpp \
engine/data.cpp engine/decomp.cpp \
engine/define.cpp engine/defint.cpp \
engine/degree.cpp engine/denominator.cpp \
engine/denominator.cpp engine/derivative.cpp \
engine/det.cpp engine/dirac.cpp \
engine/display.cpp engine/distill.cpp \
engine/divisors.cpp engine/dpow.cpp \
engine/dsolve.cpp engine/eigen.cpp \
engine/erf.cpp engine/erfc.cpp \
engine/eval.cpp engine/expand.cpp \
engine/expcos.cpp engine/expsin.cpp \
engine/factor.cpp engine/factorial.cpp \
engine/factorpoly.cpp engine/factors.cpp \
engine/factors.cpp engine/filter.cpp \
engine/find.cpp engine/float.cpp \
engine/floor.cpp engine/for.cpp \
engine/gamma.cpp engine/gcd.cpp \
engine/guess.cpp engine/hermite.cpp \
engine/hilbert.cpp \
engine/imag.cpp engine/index.cpp \
engine/index.cpp engine/init.cpp \
engine/inner.cpp engine/integral.cpp \
engine/inv.cpp engine/is.cpp \
engine/isprime.cpp engine/itab.cpp \
engine/itest.cpp engine/laguerre.cpp \
engine/laplace.cpp engine/lcm.cpp \
engine/leading.cpp engine/legendre.cpp \
engine/list.cpp engine/log.cpp \
engine/madd.cpp engine/mag.cpp \
engine/main_engine.cpp engine/mcmp.cpp \
engine/mfactor.cpp engine/mgcd.cpp \
engine/misc.cpp engine/mmodpow.cpp \
engine/mmul.cpp engine/mod.cpp engine/mpow.cpp \
engine/mprime.cpp engine/mroot.cpp \
engine/mscan.cpp engine/msqrt.cpp \
engine/mstr.cpp engine/multiply.cpp \
engine/nroots.cpp engine/numerator.cpp \
engine/outer.cpp engine/partition.cpp \
engine/polar.cpp engine/pollard.cpp \
engine/power.cpp engine/prime.cpp \
engine/primetab.cpp engine/print.cpp \
engine/product.cpp engine/qadd.cpp \
engine/qdiv.cpp engine/qmul.cpp \
engine/qpow.cpp engine/qsub.cpp \
engine/quickfactor.cpp engine/quotient.cpp \
engine/rationalize.cpp engine/real.cpp \
engine/rect.cpp engine/rewrite.cpp \
engine/roots.cpp engine/run.cpp \
engine/scan.cpp engine/sgn.cpp \
engine/simfac.cpp engine/simplify.cpp \
engine/sin.cpp engine/sinh.cpp \
engine/stack.cpp engine/subst.cpp \
engine/sum.cpp engine/symbol.cpp \
engine/tan.cpp engine/tanh.cpp \
engine/taylor.cpp engine/tensor.cpp \
engine/test.cpp engine/transform.cpp \
engine/transpose.cpp engine/userfunc.cpp \
engine/variables.cpp engine/vectorize.cpp \
engine/zero.cpp )
file-obj = $(patsubst src/%,build/%.o,$(file-src) $(file-res))
file-ld = addin.ld
file-icon = icon.bmp
all: build $(target-g1a)
@echo "Tout est au mieux dans le meilleur des mondes : c'est un succès"
build:
mkdir -p $@
$(target-g1a): $(file-obj)
$(cc) $(flags) $^ -T$(file-ld) -o build/$(name).elf $(libs)
$(objcopy) -R .comment -R .bss -O binary build/$(name).elf build/$(name).bin
g1a-wrapper build/$(name).bin -o $@ $(wrap)
build/%.c.o: src/%.c $(file-dep)
$(cc) -c $< -o $@ $(cflags) $(include)
build/%.cpp.o: src/%.cpp $(file-dep)
$(cxx) -c $< -o $@ $(cxxflags) $(include)
build/%.s.o: src/%.s $(file-dep)
$(as) -c $^ -o $@
clean:
@ rm -rf build/*
mkdir build/tex build/engine
mrproper: clean
@ rm -f $(target-g1a)
@ rm -rf build
distclean: mrproper