PREFIX=arm-none-eabi-
GCC = $(PREFIX)gcc
CXX = $(PREFIX)g++
LD = $(PREFIX)ld 

OBJDIR=device

CXXFLAGS = -Os -I. -I../../include #-I../../libtommath-0.39
CXXFLAGS += -fno-threadsafe-statics -mthumb -march=armv7e-m -mfloat-abi=hard  -mcpu=cortex-m7 -mfpu=fpv5-sp-d16  -fdata-sections -ffunction-sections -fno-strict-aliasing -fno-exceptions # -fpermissive
#CXXFLAGS += -DNUMWORKS  -DHAVE_CONFIG_H -DIN_GIAC -DTIMEOUT -DNO_PHYSICAL_CONSTANTS -DNO_STDEXCEPT  -DGIAC_BINARY_ARCHIVE -DNO_UNARY_FUNCTION_COMPOSE -DNO_TEMPLATE_MULTGCD  -DNO_RTTI  -DGIAC_GENERIC_CONSTANTS # -DGIAC_NO_OPTIMIZATIONS -DSTATIC_BUILTIN_LEXER_FUNCTIONS
CXXFLAGS += -DDEVICE -DNUMWORKS -DHAVE_CONFIG_H -DIN_GIAC -DTIMEOUT -DNO_STDEXCEPT  -DGIAC_BINARY_ARCHIVE -DNO_UNARY_FUNCTION_COMPOSE -DNO_TEMPLATE_MULTGCD  -DGIAC_NO_OPTIMIZATIONS -DSTATIC_BUILTIN_LEXER_FUNCTIONS -DTIMEOUT

OBJS =$(addprefix $(OBJDIR)/, sym2poly.o gausspol.o threaded.o maple.o ti89.o mathml.o moyal.o misc.o permu.o desolve.o input_parser.o symbolic.o index.o modpoly.o modfactor.o ezgcd.o derive.o solve.o intg.o intgab.o risch.o lin.o series.o subst.o vecteur.o sparse.o csturm.o tex.o global.o ifactor.o alg_ext.o gauss.o isom.o help.o plot.o plot3d.o rpn.o prog.o pari.o cocoa.o unary.o usual.o identificateur.o gen.o input_lexer.o tinymt32.o first.o quater.o kdisplay.o kadd.o)

all: $(OBJDIR)/libgiac.a

$(OBJDIR)/%.o : %.cc  
	mkdir -p $(OBJDIR)
	$(CXX) $(CXXFLAGS) -c $< -o $@

clean:
	rm -f $(OBJS) $(OBJDIR)/libgiac.a

$(OBJDIR)/libgiac.a: $(OBJS)
	$(PREFIX)ar rcs $(OBJDIR)/libgiac.a $(OBJS) 
	$(PREFIX)ranlib $(OBJDIR)/libgiac.a
	$(PREFIX)objcopy --redefine-sym mp_init=mp_tm_init $@
	cp $(OBJDIR)/libgiac.a ../../n0110/lib