From 829259826b29edc284ec43810bb505a832091dda Mon Sep 17 00:00:00 2001 From: WANG Date: Mon, 16 Sep 2013 17:44:39 +0200 Subject: [PATCH] Examples' Makefiles are completed and tested. --- Makefile | 4 ++++ examples/Makefile | 17 ++++++++++++++--- examples/close/img_read.m | 2 +- examples/fft/Makefile | 14 +++++++++++--- examples/fft/fft.png | Bin 0 -> 28682 bytes examples/fft/img_write.m | 4 ++++ .../{licenseplate => licenceplate}/Makefile | 0 .../{licenseplate => licenceplate}/img_read.m | 0 .../{licenseplate => licenceplate}/img_write.m | 0 .../{licenseplate => licenceplate}/licence.png | Bin .../licence_small.png | Bin .../licenceplate.dsp | 0 examples/open/img_read.m | 2 +- examples/primitives/Makefile | 10 +++++++--- examples/sinwave/Makefile | 14 ++++++++++---- 15 files changed, 52 insertions(+), 15 deletions(-) create mode 100644 examples/fft/fft.png create mode 100644 examples/fft/img_write.m rename examples/{licenseplate => licenceplate}/Makefile (100%) rename examples/{licenseplate => licenceplate}/img_read.m (100%) rename examples/{licenseplate => licenceplate}/img_write.m (100%) rename examples/{licenseplate => licenceplate}/licence.png (100%) rename examples/{licenseplate => licenceplate}/licence_small.png (100%) rename examples/{licenseplate => licenceplate}/licenceplate.dsp (100%) diff --git a/Makefile b/Makefile index c558b8c..2743a33 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ clean: mrproper: clean @($(MAKE) -C $(SRC_DIR) mrproper) @($(MAKE) -C $(PREPROCESSOR_DIR) clean) + @($(MAKE) -C $(EXAMPLES_DIR) clean) test: @$(MAKE) -C $(SINWAVE_DIR) @@ -43,6 +44,9 @@ test: @echo "open $(SINWAVE_DIR)/output1.wav" @echo "octave -q --eval 'plot(wavread(\"$(SINWAVE_DIR)/output1.wav\")); pause'" +example: + @($(MAKE) -C $(EXAMPLES_DIR)) + install : mkdir -p $(prefix)/lib/faustine/ mkdir -p $(prefix)/bin/ diff --git a/examples/Makefile b/examples/Makefile index 66667e1..c7e43eb 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -1,4 +1,15 @@ -SOURCES = $(wildcard */*.dsp) +#SOURCES = $(wildcard */*.dsp) +#MAKEFILES = $(wildcard */Makefile) +EXAMPLES = 2d_fft close dilation erosion fft licenceplate open primitives sinwave -all: $(SOURCES) - +all: examples + +examples:: + echo "Making all the examples, it may take several mins..." + @$(foreach example, $(EXAMPLES), cd $(example) && make && cd ..;) + +clean:: + @$(foreach example, $(EXAMPLES), cd $(example) && make clean && cd ..;) + +#examples: +# cd primitives && make diff --git a/examples/close/img_read.m b/examples/close/img_read.m index 1f1beae..941dbfa 100644 --- a/examples/close/img_read.m +++ b/examples/close/img_read.m @@ -1,2 +1,2 @@ -a = imread('circbw.png' ); +a = imread('circbw.gif' ); csvwrite('circbw.csv', a); diff --git a/examples/fft/Makefile b/examples/fft/Makefile index fa1e89d..20aeaf3 100644 --- a/examples/fft/Makefile +++ b/examples/fft/Makefile @@ -4,10 +4,18 @@ INPUT2 = sin_2067Hz_0.005_ampli_128samples.wav INPUT3 = sin_16536Hz_0.005_ampli_128samples.wav INPUT4 = sin_22000Hz_0.005_ampli_128samples.wav -all: clean fft +BASENAME = output +FORMAT = csv +CSVOUT = $(BASENAME)1.$(FORMAT) +IMGOUT = $(SRC:.dsp=.png) -fft: $(SRC) $(INPUT1) $(INPUT2) $(INPUT3) $(INPUT4) - faustine -d $(SRC) -i $(INPUT1) -i $(INPUT2) -i $(INPUT3) -i $(INPUT4) +all: $(IMGOUT) + +$(IMGOUT): $(CSVOUT) + octave -qf img_write.m + +$(CSVOUT): $(SRC) $(INPUT1) $(INPUT2) $(INPUT3) $(INPUT4) + faustine -d $(SRC) -i $(INPUT1) -i $(INPUT2) -i $(INPUT3) -i $(INPUT4) --oformat $(FORMAT) --obasename $(BASENAME) clean:: rm -f gmon.out output* diff --git a/examples/fft/fft.png b/examples/fft/fft.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8739ea352247d601732f17722602e7bd233259 GIT binary patch literal 28682 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 Uy{stKpK4F2>)NXM%KrrX7uq)C5C8xG literal 0 HcmV?d00001 diff --git a/examples/fft/img_write.m b/examples/fft/img_write.m new file mode 100644 index 0000000..a359b40 --- /dev/null +++ b/examples/fft/img_write.m @@ -0,0 +1,4 @@ +a = csvread('output1.csv' ); +plot(a); +print('fft.png'); + diff --git a/examples/licenseplate/Makefile b/examples/licenceplate/Makefile similarity index 100% rename from examples/licenseplate/Makefile rename to examples/licenceplate/Makefile diff --git a/examples/licenseplate/img_read.m b/examples/licenceplate/img_read.m similarity index 100% rename from examples/licenseplate/img_read.m rename to examples/licenceplate/img_read.m diff --git a/examples/licenseplate/img_write.m b/examples/licenceplate/img_write.m similarity index 100% rename from examples/licenseplate/img_write.m rename to examples/licenceplate/img_write.m diff --git a/examples/licenseplate/licence.png b/examples/licenceplate/licence.png similarity index 100% rename from examples/licenseplate/licence.png rename to examples/licenceplate/licence.png diff --git a/examples/licenseplate/licence_small.png b/examples/licenceplate/licence_small.png similarity index 100% rename from examples/licenseplate/licence_small.png rename to examples/licenceplate/licence_small.png diff --git a/examples/licenseplate/licenceplate.dsp b/examples/licenceplate/licenceplate.dsp similarity index 100% rename from examples/licenseplate/licenceplate.dsp rename to examples/licenceplate/licenceplate.dsp diff --git a/examples/open/img_read.m b/examples/open/img_read.m index 1f1beae..941dbfa 100644 --- a/examples/open/img_read.m +++ b/examples/open/img_read.m @@ -1,2 +1,2 @@ -a = imread('circbw.png' ); +a = imread('circbw.gif' ); csvwrite('circbw.csv', a); diff --git a/examples/primitives/Makefile b/examples/primitives/Makefile index 80d4dbd..b392c2b 100644 --- a/examples/primitives/Makefile +++ b/examples/primitives/Makefile @@ -2,10 +2,14 @@ EXAMPLE = primitives SRC = $(EXAMPLE).dsp SAMPLES = 30 -all: clean $(EXAMPLE) +BASENAME = output +FORMAT = csv +CSVOUT = $(BASENAME)1.$(FORMAT) -$(EXAMPLE): $(SRC) - faustine -d $(SRC) -t $(SAMPLES) --oformat csv +all: $(CSVOUT) + +$(CSVOUT): $(SRC) + faustine -d $(SRC) -t $(SAMPLES) --oformat $(FORMAT) --obasename $(BASENAME) clean:: rm -f gmon.out output* diff --git a/examples/sinwave/Makefile b/examples/sinwave/Makefile index 4a495a4..c6d2ec9 100644 --- a/examples/sinwave/Makefile +++ b/examples/sinwave/Makefile @@ -1,7 +1,13 @@ -all: clean sin +SRC = sin.dsp -sin: sin.dsp - faustine -d $< +BASENAME = output +FORMAT = wav +WAVOUT = $(BASENAME)1.$(FORMAT) + +all: $(WAVOUT) + +$(WAVOUT): $(SRC) + faustine -d $< --obasename $(BASENAME) --oformat $(FORMAT) clean:: - rm -f gmon.out output* + rm -f gmon.out $(BASENAME)* -- 2.20.1