diff --git a/.gitignore b/.gitignore index 8d99899..af1e9b3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,5 @@ *.o +*.ro +*.do +ddish dish \ No newline at end of file diff --git a/Makefile b/Makefile index b536e4c..ea666f9 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,32 @@ -OBJ=main.o line.o loop.o exec.o builtin.o -CC=gcc -CFLAGS= -O3 -Wall +SHELL := /bin/bash +CC = gcc +SRC = main.c loop.c exec.c line.c builtin.c +OBJ = $(SRC:.c=.ro) +DBGOBJ = $(SRC:.c=.do) +EXE = dish +DBGEXE = ddish -all:release -r:release -release:dish +all:release debug +debug: CFLAGS = -g -O0 -DDEBUG +release: CFLAGS = -Wall -O3 -dish: $(OBJ) - $(CC) $(CFLAGS) -o dish $(OBJ) +release: $(OBJ) + $(CC) $(CFLAGS) -o $(EXE) $(OBJ) -d: - make clean - make debug +debug: $(DBGOBJ) + $(CC) $(CFLAGS) -o $(DBGEXE) $(DBGOBJ) -debug: CFLAGS += -DDEBUG -g -debug: dish - -c: clean clean: - rm -f $(OBJ) dish + rm -f *.o +$(OBJ):$(SRC) + $(CC) $(CFLAGS) -c $(SRC) + rename .o .ro *.o + +$(DBGOBJ):$(SRC) + $(CC) $(CFLAGS) -c $(SRC) + rename .o .do *.o + +c:clean +d:debug +r:release \ No newline at end of file