Chris@10: # -*- makefile -*-
Chris@10: # This file contains special make rules to generate codelets.
Chris@10: # Most of this file requires GNU make .
Chris@10: 
Chris@10: CODLIST = codlist.c
Chris@10: CODELET_NAME=codelet_
Chris@10: 
Chris@10: # rule to build codlist
Chris@10: $(CODLIST): Makefile
Chris@10: 	(									\
Chris@10: 	echo "#include \"ifftw.h\"";						\
Chris@10: 	echo $(INCLUDE_SIMD_HEADER);						\
Chris@10: 	echo;									\
Chris@10: 	for i in $(ALL_CODELETS) NIL; do					\
Chris@10: 	   if test "$$i" != NIL; then						\
Chris@10: 	     j=`basename $$i | sed -e 's/[.][cS]$$//g'`;			\
Chris@10:              echo "extern void $(XRENAME)($(CODELET_NAME)$$j)(planner *);";	\
Chris@10:            fi									\
Chris@10: 	done;									\
Chris@10: 	echo;									\
Chris@10: 	echo;									\
Chris@10: 	echo "extern const solvtab $(SOLVTAB_NAME);";				\
Chris@10: 	echo "const solvtab $(SOLVTAB_NAME) = {";				\
Chris@10: 	for i in $(ALL_CODELETS) NIL; do					\
Chris@10: 	   if test "$$i" != NIL; then						\
Chris@10: 	     j=`basename $$i | sed -e 's/[.][cS]$$//g'`;			\
Chris@10: 	     echo "   SOLVTAB($(XRENAME)($(CODELET_NAME)$$j)),";		\
Chris@10: 	   fi									\
Chris@10: 	done;									\
Chris@10: 	echo "   SOLVTAB_END";							\
Chris@10: 	echo "};";								\
Chris@10: 	) >$@
Chris@10: 
Chris@10: # only delete codlist.c in maintainer-mode, since it is included in the dist
Chris@10: # FIXME: is there a way to delete in 'make clean' only when builddir != srcdir?
Chris@10: maintainer-clean-local:
Chris@10: 	rm -f $(CODLIST)
Chris@10: 
Chris@10: if MAINTAINER_MODE
Chris@10: 
Chris@10: INDENT = indent -kr -cs -i5 -l800 -fca -nfc1 -sc -sob -cli4 -TR -Tplanner -TV
Chris@10: TWOVERS = sh ${top_srcdir}/support/twovers.sh
Chris@10: GENFFTDIR = ${top_builddir}/genfft
Chris@10: GEN_NOTW = ${GENFFTDIR}/gen_notw.native
Chris@10: GEN_NOTW_C = ${GENFFTDIR}/gen_notw_c.native
Chris@10: GEN_TWIDDLE = ${GENFFTDIR}/gen_twiddle.native
Chris@10: GEN_TWIDDLE_C = ${GENFFTDIR}/gen_twiddle_c.native
Chris@10: GEN_TWIDSQ = ${GENFFTDIR}/gen_twidsq.native
Chris@10: GEN_TWIDSQ_C = ${GENFFTDIR}/gen_twidsq_c.native
Chris@10: GEN_R2CF = ${GENFFTDIR}/gen_r2cf.native
Chris@10: GEN_R2CB = ${GENFFTDIR}/gen_r2cb.native
Chris@10: GEN_HC2HC = ${GENFFTDIR}/gen_hc2hc.native
Chris@10: GEN_HC2C = ${GENFFTDIR}/gen_hc2c.native
Chris@10: GEN_HC2CDFT = ${GENFFTDIR}/gen_hc2cdft.native
Chris@10: GEN_HC2CDFT_C = ${GENFFTDIR}/gen_hc2cdft_c.native
Chris@10: GEN_R2R = ${GENFFTDIR}/gen_r2r.native
Chris@10: PRELUDE_DFT = ${top_srcdir}/support/codelet_prelude.dft
Chris@10: PRELUDE_RDFT = ${top_srcdir}/support/codelet_prelude.rdft
Chris@10: ADD_DATE = sed -e s/@DATE@/"`date`"/
Chris@10: 
Chris@10: COPYRIGHT=${top_srcdir}/COPYRIGHT
Chris@10: CODELET_DEPS=$(COPYRIGHT) $(PRELUDE) 
Chris@10: PRELUDE_COMMANDS_DFT=cat $(COPYRIGHT) $(PRELUDE_DFT)
Chris@10: PRELUDE_COMMANDS_RDFT=cat $(COPYRIGHT) $(PRELUDE_RDFT)
Chris@10: 
Chris@10: FLAGS_COMMON = -compact -variables 4
Chris@10: DFT_FLAGS_COMMON = $(FLAGS_COMMON) -pipeline-latency 4
Chris@10: RDFT_FLAGS_COMMON = $(FLAGS_COMMON) -pipeline-latency 4
Chris@10: 
Chris@10: # cancel the hideous builtin rules that cause an infinite loop
Chris@10: %: %.o
Chris@10: %: %.s
Chris@10: %: %.c
Chris@10: %: %.S
Chris@10: 
Chris@10: endif # MAINTAINER_MODE