Skip to content
Snippets Groups Projects
Makefile 815 B
Newer Older
  • Learn to ignore specific revisions
  • TARGET=cryptops-api
    
    CFLAGS=-O0 -g -Wall -D_GNU_SOURCE -Iincludes -Isrc
    LFLAGS=-L./libraries -lcryptsetup -lc -lulfius -lyder -lorcania -ljansson
    
    CC=gcc
    
    LINKER=gcc
    
    SRCDIR   = src
    OBJDIR   = obj
    BINDIR   = bin
    
    SOURCES  := $(SRCDIR)/$(TARGET).c
    INCLUDES := $(wildcard $(SRCDIR)/*.h)
    OBJECTS  := $(SOURCES:$(SRCDIR)/%.c=$(OBJDIR)/%.o)
    
    $(BINDIR)/$(TARGET): $(BINDIR)
    $(BINDIR):
    	mkdir -p $(BINDIR)
    
    $(BINDIR)/$(TARGET): $(OBJECTS)
    	@$(LINKER) $(OBJECTS) $(LFLAGS) -o $@
    	@echo "Linking complete."
    
    
    $(OBJECTS): | $(OBJDIR)
    $(OBJDIR):
    	mkdir -p $(OBJDIR)
    
    $(OBJECTS): $(OBJDIR)/%.o : $(SRCDIR)/%.c
    	@$(CC) $(CFLAGS) -c $< -o $@
    	@echo "Compiled "$<" successfully."
    
    
    .PHONY: clean
    
    clean:
    	@rm -f $(OBJECTS)
    	@echo "Cleanup complete."
    
    .PHONY: remove
    remove: clean
    	@rm -f $(BINDIR)/$(TARGET)
    	@echo "Executable removed."