From a71fc97fd262e1b5770f827047ea60bbaf38d9a2 Mon Sep 17 00:00:00 2001 From: Joshua Bakita Date: Mon, 19 Oct 2020 01:09:53 -0400 Subject: Unify all the versions of extra.h into a single multipurpose header There was previously a huge amount of shared code that had to be copied back and forth. This should reduce the maintenance burden by containing all future changes to a single file. New unified library is fully backwards-compatible but also introduces and the easy-to-use `for_each_job` macro which replaces the specific `for(...) START_LOOP ... STOP_LOOP` format requirement and is generally much harder to abuse. New unified library also automatically cleans up its shared memory and semaphores, so this commit also removes the separate `cleanupSemaphores` binary. I also found a precursor of `extra.h` written by Sims in `litmusStuff.h`. This code is only interesting for historical purposes, so it is also removed in this commit. This commit also adds debug options to all the Makefiles and silences rm's complaints about non-existent files in make clean. --- all_pairs/Makefile | 74 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 29 deletions(-) (limited to 'all_pairs/Makefile') diff --git a/all_pairs/Makefile b/all_pairs/Makefile index 36cf55a..0042372 100644 --- a/all_pairs/Makefile +++ b/all_pairs/Makefile @@ -1,57 +1,73 @@ -CC = gcc -CFLAGS = -pthread -O2 +LIBLITMUS ?= /media/speedy/litmus/liblitmus +CC ?= gcc +CFLAGS = -pthread -O2 -I.. -DPAIRED LDFLAGS = -lrt -all: bin/cjpeg_wrbmp bin/huff_enc bin/gsm_enc bin/dijkstra bin/h264_dec bin/susan bin/adpcm_enc bin/rijndael_dec bin/huff_dec bin/rijndael_enc bin/gsm_dec bin/anagram bin/epic bin/ammunition bin/g723_enc bin/ndes bin/petrinet bin/statemate bin/cjpeg_transupp bin/mpeg2 bin/fmref bin/audiobeam bin/adpcm_dec bin/cleanupSemaphores +COMMON = ../extra.h + +# Handle cases where we're also profiling with the MMDC on the i.MX6Q +ifneq ($(shell grep "define MMDC 1" ../extra.h),) + COMMON += /media/speedy/litmus/tools/mmdc/mmdc.c +endif + +# Include all the LITMUS^RT headers if we're using it +ifneq ($(shell grep "define LITMUS 1" ../extra.h),) + CFLAGS += -I${LIBLITMUS}/include -I${LIBLITMUS}/arch/arm/include + LDFLAGS += -L${LIBLITMUS} -llitmus +endif + +all: bin/cjpeg_wrbmp bin/huff_enc bin/gsm_enc bin/dijkstra bin/h264_dec bin/susan bin/adpcm_enc bin/rijndael_dec bin/huff_dec bin/rijndael_enc bin/gsm_dec bin/anagram bin/epic bin/ammunition bin/g723_enc bin/ndes bin/petrinet bin/statemate bin/cjpeg_transupp bin/mpeg2 bin/fmref bin/audiobeam bin/adpcm_dec + +debug: all +debug: CFLAGS += -ggdb3 .PHONY: clean clean: - rm bin/cjpeg_wrbmp bin/huff_enc bin/gsm_enc bin/dijkstra bin/h264_dec bin/susan bin/adpcm_enc bin/rijndael_dec bin/huff_dec bin/rijndael_enc bin/gsm_dec bin/anagram bin/epic bin/ammunition bin/g723_enc bin/ndes bin/petrinet bin/statemate bin/cjpeg_transupp bin/mpeg2 bin/fmref bin/audiobeam bin/adpcm_dec bin/cleanupSemaphores + rm -f bin/cjpeg_wrbmp bin/huff_enc bin/gsm_enc bin/dijkstra bin/h264_dec bin/susan bin/adpcm_enc bin/rijndael_dec bin/huff_dec bin/rijndael_enc bin/gsm_dec bin/anagram bin/epic bin/ammunition bin/g723_enc bin/ndes bin/petrinet bin/statemate bin/cjpeg_transupp bin/mpeg2 bin/fmref bin/audiobeam bin/adpcm_dec -bin/cleanupSemaphores: ./source/extra.h ./source/cleanupSemaphores.c - $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/cjpeg_wrbmp: ./source/extra.h ./source/cjpeg_wrbmp/cjpeg_wrbmp.c ./source/cjpeg_wrbmp/input.c +bin/cjpeg_wrbmp: ${COMMON} ./source/cjpeg_wrbmp/cjpeg_wrbmp.c ./source/cjpeg_wrbmp/input.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/huff_enc: ./source/extra.h ./source/huff_enc/huff_enc.c +bin/huff_enc: ${COMMON} ./source/huff_enc/huff_enc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/gsm_enc: ./source/extra.h ./source/gsm_enc/gsm_enc.c +bin/gsm_enc: ${COMMON} ./source/gsm_enc/gsm_enc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/dijkstra: ./source/extra.h ./source/dijkstra/dijkstra.c ./source/dijkstra/input.c +bin/dijkstra: ${COMMON} ./source/dijkstra/dijkstra.c ./source/dijkstra/input.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/h264_dec: ./source/extra.h ./source/h264_dec/h264_dec.c ./source/h264_dec/h264_decinput.c +bin/h264_dec: ${COMMON} ./source/h264_dec/h264_dec.c ./source/h264_dec/h264_decinput.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/susan: ./source/extra.h ./source/susan/input.c ./source/susan/susan.c ./source/susan/wccfile.c ./source/susan/wcclibm.c ./source/susan/wccmalloc.c +bin/susan: ${COMMON} ./source/susan/input.c ./source/susan/susan.c ./source/susan/wccfile.c ./source/susan/wcclibm.c ./source/susan/wccmalloc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/adpcm_enc: ./source/extra.h ./source/adpcm_enc/adpcm_enc.c +bin/adpcm_enc: ${COMMON} ./source/adpcm_enc/adpcm_enc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/rijndael_dec: ./source/extra.h ./source/rijndael_dec/aes.c ./source/rijndael_dec/input_small_enc.c ./source/rijndael_dec/rijndael_dec.c ./source/rijndael_dec/rijndael_dec_libc.c +bin/rijndael_dec: ${COMMON} ./source/rijndael_dec/aes.c ./source/rijndael_dec/input_small_enc.c ./source/rijndael_dec/rijndael_dec.c ./source/rijndael_dec/rijndael_dec_libc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/huff_dec: ./source/extra.h ./source/huff_dec/huff_dec.c +bin/huff_dec: ${COMMON} ./source/huff_dec/huff_dec.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/rijndael_enc: ./source/extra.h ./source/rijndael_enc/aes.c ./source/rijndael_enc/input_small.c ./source/rijndael_enc/rijndael_enc.c ./source/rijndael_enc/rijndael_enc_libc.c +bin/rijndael_enc: ${COMMON} ./source/rijndael_enc/aes.c ./source/rijndael_enc/input_small.c ./source/rijndael_enc/rijndael_enc.c ./source/rijndael_enc/rijndael_enc_libc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/gsm_dec: ./source/extra.h ./source/gsm_dec/gsm_dec.c +bin/gsm_dec: ${COMMON} ./source/gsm_dec/gsm_dec.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/anagram: ./source/extra.h ./source/anagram/anagram.c ./source/anagram/anagram_input.c ./source/anagram/anagram_stdlib.c +bin/anagram: ${COMMON} ./source/anagram/anagram.c ./source/anagram/anagram_input.c ./source/anagram/anagram_stdlib.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/epic: ./source/extra.h ./source/epic/epic.c +bin/epic: ${COMMON} ./source/epic/epic.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/ammunition: ./source/extra.h ./source/ammunition/ammunition.c ./source/ammunition/ammunition_libc.c ./source/ammunition/arithm.c ./source/ammunition/bits.c +bin/ammunition: ${COMMON} ./source/ammunition/ammunition.c ./source/ammunition/ammunition_libc.c ./source/ammunition/arithm.c ./source/ammunition/bits.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/g723_enc: ./source/extra.h ./source/g723_enc/g723_enc.c +bin/g723_enc: ${COMMON} ./source/g723_enc/g723_enc.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/ndes: ./source/extra.h ./source/ndes/ndes.c +bin/ndes: ${COMMON} ./source/ndes/ndes.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/petrinet: ./source/extra.h ./source/petrinet/petrinet.c +bin/petrinet: ${COMMON} ./source/petrinet/petrinet.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/statemate: ./source/extra.h ./source/statemate/statemate.c +bin/statemate: ${COMMON} ./source/statemate/statemate.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/cjpeg_transupp: ./source/extra.h ./source/cjpeg_transupp/cjpeg_transupp.c +bin/cjpeg_transupp: ${COMMON} ./source/cjpeg_transupp/cjpeg_transupp.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/mpeg2: ./source/extra.h ./source/mpeg2/mpeg2.c +bin/mpeg2: ${COMMON} ./source/mpeg2/mpeg2.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/fmref: ./source/extra.h ./source/fmref/fmref.c ./source/fmref/wcclibm.c +bin/fmref: ${COMMON} ./source/fmref/fmref.c ./source/fmref/wcclibm.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/audiobeam: ./source/extra.h ./source/audiobeam/audiobeam.c ./source/audiobeam/audiobeaminput.c ./source/audiobeam/audiobeamlibmalloc.c ./source/audiobeam/audiobeamlibm.c +bin/audiobeam: ${COMMON} ./source/audiobeam/audiobeam.c ./source/audiobeam/audiobeaminput.c ./source/audiobeam/audiobeamlibmalloc.c ./source/audiobeam/audiobeamlibm.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) -bin/adpcm_dec: ./source/extra.h ./source/adpcm_dec/adpcm_dec.c +bin/adpcm_dec: ${COMMON} ./source/adpcm_dec/adpcm_dec.c $(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) + -- cgit v1.2.2