42 lines
741 B
Makefile
42 lines
741 B
Makefile
SRC = src/pasm.c \
|
|
src/file_utils.c \
|
|
src/interpreter_states.c \
|
|
src/instructions.c \
|
|
src/api.c
|
|
OBJ = $(SRC:.c=.o)
|
|
NAME = pasm
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -Wpedantic -Iinclude -s -Os -fno-ident -fno-asynchronous-unwind-tables
|
|
CLIBS = -lm
|
|
|
|
all: $(NAME)
|
|
|
|
lib: $(OBJ)
|
|
@-mkdir build
|
|
ar rc build/lib$(NAME).a $(OBJ)
|
|
|
|
$(NAME): fclean
|
|
$(NAME): lib
|
|
$(NAME): CLIBS += build/lib$(NAME).a
|
|
$(NAME):
|
|
$(CC) tests/interpreter.c $(CFLAGS) $(CLIBS) -o build/$(NAME)
|
|
|
|
interpreter: $(NAME)
|
|
|
|
debug: fclean
|
|
debug: CFLAGS += -DDEBUG -g3
|
|
debug: $(NAME)
|
|
|
|
clean:
|
|
@-rm -f $(OBJ)
|
|
@-cd tests && $(MAKE) clean
|
|
|
|
fclean: clean
|
|
@-rm -rf build/
|
|
@-cd tests && $(MAKE) fclean
|
|
|
|
re: fclean
|
|
re: $(NAME)
|
|
|
|
.PHONY : all $(NAME) clean fclean re interpreter lib debug
|