# Note: The goal of this makefile is to be simple. It's barely even # really a makefile, it's more like a shell script that does # a switch statement on its argument. Don't copy its style. # We'll distribute better written makefiles as we proceed CC=gcc CFLAGS=-std=c11 -Wall .SILENT: all: 01-linkerMainSub 02-linkerMain 03-linkerSub 04-sizeof 05-const 06-conversion \ 07-intFloat 08-pointerConversion 09-conversionOpportunities 10-scope 11-staticLocal make clean 01-linkerMainSub: echo "\n----- 01: compiling main and sub in one file" ${CC} ${CFLAGS} -c 01-linkerMainSub.c objdump -t 01-linkerMainSub.o 02-linkerMain: echo "\n----- 02: compiling just file with main, no sub" ${CC} ${CFLAGS} -c 02-linkerMain.c objdump -t 02-linkerMain.o 03-linkerSub: echo \\n----- 03: compiling just file with sub, no main ${CC} ${CFLAGS} -c 03-linkerSub.c objdump -t 03-linkerSub.o 04-sizeof: echo "\n----- 04: running 04-sizeof" ${CC} ${CFLAGS} 04-sizeof.c -o 04-sizeof ./04-sizeof 05-const: echo "\n----- 05: compiling 05-const.c (expecting errors)" -${CC} ${CFLAGS} 05-const.c 06-conversion: echo "\n----- 06: compiling 06-conversion.c (expecting errors)" -${CC} ${CFLAGS} 06-conversion.c 07-intFloat: echo "\n----- 07: compiling and running 07-intFloat.c" ${CC} ${CFLAGS} 07-intFloat.c -o 07-intFloat ./07-intFloat 08-pointerConversion: echo "\n----- 08: compiling and running 08-pointerConversion.c" ${CC} ${CFLAGS} 08-pointerConversion.c -o 08-pointerConversion ./08-pointerConversion 09-conversionOpportunities: echo "\n----- 09: compiling and running 09-conversionOpportunities.c" ${CC} ${CFLAGS} 09-conversionOpportunities.c -o 09-conversionOpportunities ./09-conversionOpportunities 10-scope: echo "\n----- 10: compiling 10-scope.c" -${CC} ${CFLAGS} 10-scope.c 11-staticLocal: echo "\n----- 11: compiling and running 11-staticLocal.c" ${CC} ${CFLAGS} 11-staticLocal.c -o 11-staticLocal ./11-staticLocal clean: rm -f *.o *~ 04-sizeof 06-conversion 07-intFloat 08-pointerConversion \ 09-conversionOpportunities 11-staticLocal