gs_bucket_array

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README

Makefile (1411B)


      1 # Makefile for C projects
      2 
      3 # options
      4 CC     = clang
      5 LINKER = $(CC)
      6 CFLAGS =  -O0 -pthread -g -std=gnu99 -Wall -Wno-missing-braces -Wno-unused-variable -Wno-switch -Wno-unused-function -Wno-unused-variable -Wno-unused-but-set-variable -Wno-comment -Wno-typedef-redefinition #-Wfatal-errors
      7 LFLAGS = -ldl -lX11 -lXi -lm -lpthread -lavformat -lavcodec -lswscale -lavutil
      8 
      9 TARGET   = App
     10 
     11 # directories
     12 SRC_DIR  = ../../source
     13 BIN_DIR  = ../../bin
     14 INCLUDE  = -I../../third_party/include
     15 OBJ_DIR  = $(BIN_DIR)/.obj
     16 
     17 # finds source files two directories deep
     18 SOURCES  = $(wildcard $(SRC_DIR)/*.c $(SRC_DIR)/*/*.c $(SRC_DIR)/modes/*/*.c)
     19 OBJECTS  = $(SOURCES:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.o)
     20 DEPENDS  = $(SOURCES:$(SRC_DIR)/%.c=$(OBJ_DIR)/%.d)
     21 
     22 .PHONY: all build run clean
     23 
     24 all: build
     25 
     26 build: $(BIN_DIR) $(DEPENDS) $(BIN_DIR)/$(TARGET)
     27 
     28 $(BIN_DIR):
     29 	mkdir -p $@
     30 
     31 # update dependencies
     32 $(OBJ_DIR)/%.d : $(SRC_DIR)/%.c
     33 	@mkdir -p $(@D)
     34 	@echo -n "Updating dependencies for $< --- "
     35 	gcc -MM $< -o $@
     36 	@sed -i "s/ /\t/" $@;
     37 	@echo -n "$(@D)/" | cat - $@ > "/tmp/___make_temp" && mv "/tmp/___make_temp" $@
     38 
     39 # add dependencies
     40 include $(DEPENDS)
     41 
     42 # compile
     43 $(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
     44 	@mkdir -p $(@D)
     45 	$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
     46 
     47 # link
     48 $(BIN_DIR)/$(TARGET): $(OBJECTS)
     49 	$(LINKER) $(OBJECTS) $(LFLAGS) -o $@
     50 
     51 run: build
     52 	./$(BIN_DIR)/$(TARGET)
     53 
     54 clean:
     55 	rm -f $(OBJECTS) $(GS_OBJ)
     56 	rm -f $(BIN_DIR)/$(TARGET)