PROGRAM = main
CFILES = $(wildcard *.c)
SFILES = $(wildcard *.s)
COBJS = $(CFILES:.c=.o)
DEPS = $(patsubst %.o, %.d, $(COBJS))
SOBJS = $(SFILES:.s=.o)
AS = as
CC = gcc
CFLAG = -c -g
LDFLAG =
RM = rm -rf
.PHONY : all clean distclean rebuild
all: $(PROGRAM) clean
%.d : %.c
$(CC) -MM -MD $(CFLAG) $< -o .deps/$@
%.o : %.c
$(CC) $(CFLAG) $<
%.o : %.s
$(AS) -o $@ $*.s
$(PROGRAM) : $(COBJS) $(SOBJS)
ifeq ($(COBJS),)
ld -o $@ $^ --dynamic-linker /lib/ld-linux.so.2 -lc
else
$(CC) -o $@ $^ $(LDFLAG)
endif
-include $(shell [ -d .deps ] || mkdir -p .deps) $(DEPS)
clean:
$(RM) *.o
distclean: clean
$(RM) $(PROGRAM) .deps
rebuild: distclean all
CFILES = $(wildcard *.c)
SFILES = $(wildcard *.s)
COBJS = $(CFILES:.c=.o)
DEPS = $(patsubst %.o, %.d, $(COBJS))
SOBJS = $(SFILES:.s=.o)
AS = as
CC = gcc
CFLAG = -c -g
LDFLAG =
RM = rm -rf
.PHONY : all clean distclean rebuild
all: $(PROGRAM) clean
%.d : %.c
$(CC) -MM -MD $(CFLAG) $< -o .deps/$@
%.o : %.c
$(CC) $(CFLAG) $<
%.o : %.s
$(AS) -o $@ $*.s
$(PROGRAM) : $(COBJS) $(SOBJS)
ifeq ($(COBJS),)
ld -o $@ $^ --dynamic-linker /lib/ld-linux.so.2 -lc
else
$(CC) -o $@ $^ $(LDFLAG)
endif
-include $(shell [ -d .deps ] || mkdir -p .deps) $(DEPS)
clean:
$(RM) *.o
distclean: clean
$(RM) $(PROGRAM) .deps
rebuild: distclean all