diff --git a/write-location-file/makefile b/write-location-file/makefile index c447894..a227b84 100644 --- a/write-location-file/makefile +++ b/write-location-file/makefile @@ -1,12 +1,33 @@ -#put the most commonly desired target first (default) -all: main.o write-location-file.o - gcc main.o write-location-file.o -o write -main.o: main.c write-location-file.h - gcc -I . -c main.c -write-location-file.o: write-location-file.c write-location-file.h - gcc -I . -c write-location-file.c +# Source, Executable, Includes, Library Defines +INCL = write-location-file.h +SRC = main.c write-location-file.c +OBJ = $(SRC:.c=.o) +LIBS = +EXE = write + +# Compiler, Linker Defines +CC = /usr/bin/gcc +CFLAGS = -ansi -pedantic -Wall -O2 +LIBPATH = -L. +LDFLAGS = -o $(EXE) $(LIBPATH) $(LIBS) +CFDEBUG = -ansi -pedantic -Wall -g -DDEBUG $(LDFLAGS) +RM = /bin/rm -f + +# Compile and Assemble C Source Files into Object Files +%.o: %.c + $(CC) -c $(CFLAGS) $*.c + +# Link all Object Files with external Libraries into Binaries +$(EXE): $(OBJ) + $(CC) $(LDFLAGS) $(OBJ) + +# Objects depend on these Libraries +$(OBJ): $(INCL) + +# Create a gdb/dbx Capable Executable with DEBUG flags turned on +debug: + $(CC) $(CFDEBUG) $(SRC) + +# Clean Up Objects, Exectuables, Dumps out of source directory clean: - rm -rf *.o - rm -rf write - rm -rf *.csv - rm -rf a.out + $(RM) $(OBJ) $(EXE) core a.out *.csv