You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.8 KiB
81 lines
1.8 KiB
#
|
|
# ogolny makefile do kompilowania programow
|
|
# 2005.07.22 - modyfikacja parametrow kompilacji (aiwanicki)
|
|
# 2009.12.05 - dodanie usuwania plikow .valgrind
|
|
# 2012.10.13 - opcja -U-FORTIFY_SOURCE
|
|
#
|
|
|
|
include ../makefile.in
|
|
|
|
GCC_OPT = -Wall -lm -O2 -Wno-unused-result -Werror ${CFLAGS}
|
|
GPP_OPT = -Wall -lm -O2 -Wno-unused-result -Werror -I ~/.sinol ${CXXFLAGS}
|
|
PPC_OPT = -O2 -XS -Xt -Ci -Cr -Co -gl -g ${PASFLAGS}
|
|
|
|
PRG_C = $(wildcard *.c)
|
|
PRG_CPP = $(wildcard *.cpp)
|
|
PRG_JAVA = $(wildcard *.java)
|
|
PRG_PAS = $(wildcard *.pas)
|
|
PRG_ML = $(wildcard *.ml)
|
|
PRG_PY = $(wildcard *.py)
|
|
PRG = $(PRG_C) $(PRG_CPP) $(PRG_PAS) $(PRG_ML) $(PRG_PY)
|
|
|
|
EXE_C = $(patsubst %.c,%.e,$(PRG_C))
|
|
EXE_CPP = $(patsubst %.cpp,%.e,$(PRG_CPP))
|
|
EXE_JAVA = $(patsubst %.java,%.e,$(PRG_JAVA))
|
|
EXE_PAS = $(patsubst %.pas,%.e,$(PRG_PAS))
|
|
EXE_ML = $(patsubst %.ml,%.e,$(PRG_ML))
|
|
EXE_PY = $(patsubst %.py,%.e,$(PRG_PY))
|
|
EXE = $(EXE_C) $(EXE_CPP) $(EXE_JAVA) $(EXE_PAS) $(EXE_ML) $(EXE_PY)
|
|
|
|
all: $(EXE) ${ID}.valgrind
|
|
|
|
%.e: %.pas
|
|
fpc $(PPC_OPT) $*.pas ${PAS_LDFLAGS}
|
|
mv $* $*.e
|
|
|
|
%.e: %.c
|
|
gcc $(GCC_OPT) $^ -o $*.e ${C_LDFLAGS}
|
|
|
|
%.e: %.cpp
|
|
g++ $(GPP_OPT) $^ -o $*.e ${CXX_LDFLAGS}
|
|
|
|
%.e: %.java
|
|
javac $(JAVA_OPT) $^
|
|
MEM=$$(($(MEMLIMIT) / 1000))M; \
|
|
echo "ulimit -v unlimited ; java -client -Xmx$$MEM -Xms$$MEM -Xss$$MEM -cp \`dirname \$$0\` $*" > $*.e
|
|
chmod 755 $*.e
|
|
|
|
%.e: %.ml
|
|
ocamlopt $^ -o $*.e
|
|
rm -f *.cmx
|
|
rm -f *.cmi
|
|
rm -f *.cmo
|
|
|
|
%.e: %.py
|
|
echo "#!/usr/bin/env python3" > $*.e; \
|
|
cat $^ >> $*.e; \
|
|
chmod 755 $*.e
|
|
|
|
%.valgrind: %.c
|
|
gcc -O2 ${CFLAGS} -g -lm $^ -o $*.valgrind ${C_LDFLAGS}
|
|
|
|
%.valgrind: %.cpp
|
|
g++ -O2 ${CXXFLAGS} -g -lm $^ -o $*.valgrind ${CXX_LDFLAGS}
|
|
|
|
%.valgrind: %.pas %.e
|
|
cp $*.e $*.valgrind
|
|
|
|
%.valgrind: %.py %.e
|
|
cp $*.e $*.valgrind
|
|
|
|
clean:
|
|
rm -f *.o
|
|
rm -f *.e
|
|
rm -f *.valgrind
|
|
rm -f *~
|
|
rm -f *.class
|
|
rm -f *.cmx
|
|
rm -f *.cmi
|
|
rm -f *.cmo
|
|
|
|
-include makefile.user
|
|
|