# Makefile for Esterel-EStudio programs # # Author: Jan Lukoschus # # 2002-11-19 jlu - first version # 2004-05-03 jlu - changes for Esterel Studio 5.0 # 2005-04-28 jlu - changes for Esterel Studio 5.2 # 2005-05-04 jlu - bignum.* support default-target: @echo "Usage:" @echo " 'make file.c' - Compile Esterel file.strl to file.c" @echo " 'make file' - Compile and link file.strl, file_data.c, etc." @echo " 'make file.cosim' - Compile and link binary with graphical cosim interface" ESTEREL2C = /home/esterel/bin/esterel EFLAGS = -v7 -Lc -W EFLAGS_COSIM = -cosimul CFG = /home/esterel/etc/estudio-5.2-env ESHOME := $(shell sed -n -e "s/ESHOME=\(.*\)/\1/p" $(CFG)) ESTUDIO = /home/esterel/bin/estudio CODEDIR = Default/Code CC = gcc CFLAGS = -Wall -I$(ESHOME)/src CFLAGS_COSIM = -DCOSIM LDFLAGS = -lrt -lm -ldl -lpthread LDFLAGS_COSIM = -L$(ESHOME)/lib -lescosimulV7 .PRECIOUS: %.h %.c %_data.c %.strl # disable some implicit rules %.o: %.c %: %.c %: %.o %.strl: %.etp %.scg @echo " *** EStudio COMPILE $< ---> $@" $(ESTUDIO) --embedded $< cp $(CODEDIR)/Temp/$*.strl . cp $(CODEDIR)/$*_strl.h . %.c: %.strl %.h @echo " *** Esterel COMPILE $< ---> $@" $(ESTEREL2C) $(EFLAGS) $< bignum.c: @echo " *** COPY $(ESHOME)/src/bignum*" cp $(ESHOME)/src/bignum* . bignum.o: bignum.c @echo " *** COMPILE $^ ---> $@" $(CC) $(CFLAGS) -c $< -o $@ %.c: %.strl %.h @echo " *** Esterel COMPILE $< ---> $@" $(ESTEREL2C) $(EFLAGS) $< %.o: %.c %.h @echo " *** COMPILE $^ ---> $@" $(CC) $(CFLAGS) -c $< -o $@ %_data.o: %_data.c %.h @echo " *** COMPILE $< ---> $@" $(CC) $(CFLAGS) -c $< -o $@ %: %.o %_data.o bignum.o @echo " *** LINK $^ ---> $@" $(CC) $(LDFLAGS) $^ -o $@ %.cosim: %.strl %_data.c %.h @echo " *** Esterel COMPILE $< ---> $*.c" $(ESTEREL2C) $(EFLAGS) $(EFLAGS_COSIM) $< @echo " *** COMPILE $^ ---> $@" $(CC) $(CFLAGS) $(CFLAGS_COSIM) -c $*.c -o $*.o @echo " *** COMPILE $*_data.c ---> $*_data.o" $(CC) $(CFLAGS) $(CFLAGS_COSIM) -c $*_data.c -o $*_data.o @echo " *** LINK $^ ---> $@" $(CC) $(LDFLAGS) $*.o $*_data.o $(LDFLAGS_COSIM) -o $*.cosim-exe rm -f $*_data.o $*.o $*.c echo "#!/bin/sh" > $@ echo ". $(CFG)" >> $@ echo "LD_LIBRARY_PATH=$(ESHOME)/bin" >> $@ echo "export LD_LIBRARY_PATH" >> $@ echo "exec ./$*.cosim-exe" >> $@ chmod 755 $@ @echo " #" @echo " # Use $@ to execute $*.cosim-exe" @echo " #" clean: @echo " *** Clean up" rm -f *.o abc: echo $(ESTEREL) echo $(ESHOME)