Home | History | Annotate | Download | only in build
      1 SRCDIR := ..
      2 OBJDIR := .
      3 
      4 CFLAGS = -Wall -DDEBUG -Dvariable="value with space" -I $(SRCDIR)/include
      5 LDFLAGS =
      6 PROGRAM = $(OBJDIR)/prg
      7 
      8 $(OBJDIR)/main.o: $(SRCDIR)/main.c
      9 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/main.c
     10 
     11 $(OBJDIR)/clean-one.o: $(SRCDIR)/clean-one.c
     12 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/clean-one.c
     13 
     14 $(OBJDIR)/clean-two.o: $(SRCDIR)/clean-two.c
     15 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/clean-two.c
     16 
     17 $(OBJDIR)/emit-one.o: $(SRCDIR)/emit-one.c
     18 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/emit-one.c
     19 
     20 $(OBJDIR)/emit-two.o: $(SRCDIR)/emit-two.c
     21 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/emit-two.c
     22 
     23 $(OBJDIR)/broken-one.o: $(SRCDIR)/broken-one.c
     24 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/broken-one.c
     25 
     26 $(OBJDIR)/broken-two.o: $(SRCDIR)/broken-two.c
     27 	$(CC) $(CFLAGS) -c -o $@ $(SRCDIR)/broken-two.c
     28 
     29 $(PROGRAM): $(OBJDIR)/main.o $(OBJDIR)/clean-one.o $(OBJDIR)/clean-two.o $(OBJDIR)/emit-one.o $(OBJDIR)/emit-two.o
     30 	$(CC) $(LDFLAGS) -o $@ $(OBJDIR)/main.o $(OBJDIR)/clean-one.o $(OBJDIR)/clean-two.o $(OBJDIR)/emit-one.o $(OBJDIR)/emit-two.o
     31 
     32 build_regular: $(PROGRAM)
     33 
     34 build_clean: $(OBJDIR)/main.o $(OBJDIR)/clean-one.o $(OBJDIR)/clean-two.o
     35 
     36 build_broken: $(OBJDIR)/main.o $(OBJDIR)/broken-one.o $(OBJDIR)/broken-two.o
     37 
     38 build_all_in_one: $(SRCDIR)/main.c $(SRCDIR)/clean-one.c $(SRCDIR)/clean-two.c $(SRCDIR)/emit-one.c $(SRCDIR)/emit-two.c
     39 	$(CC) $(CFLAGS) $(LDFLAGS) -o $(PROGRAM) $(SRCDIR)/main.c $(SRCDIR)/clean-one.c $(SRCDIR)/clean-two.c $(SRCDIR)/emit-one.c $(SRCDIR)/emit-two.c
     40 
     41 clean:
     42 	rm -f $(PROGRAM) $(OBJDIR)/*.o
     43