CM обертка вокруг MakeFile в Clion? - PullRequest
0 голосов
/ 10 ноября 2019

У меня есть следующий make-файл, я хочу, чтобы проект был скомпилирован в CLion, и я мог отлаживать скомпилированный двоичный файл с помощью встроенного отладчика gdb:

TARGET = mysh
SOURCES = front.c shell.c parser/ast.c $(ADDITIONAL_SOURCES)
HEADERS = parser/lexer.h parser/ast.h shell.h $(ADDITIONAL_HEADERS)
GENERATED_SOURCES = parser/parser.c parser/lex.yy.c
GENERATED_HEADERS = parser/parser.h parser/lex.yy.h
META_SOURCES = parser/parser.y parser/lexer.l parser/lemon.c parser/lempar.c
META = Makefile check.py README.rst

CFLAGS = -Wall -Wextra -std=gnu99 -g3
LDFLAGS =
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
LIBS = -lreadline
else
LIBS = -lreadline -lhistory
endif

CC = gcc
LEX = flex
LEMON = parser/lemon

.PHONY: all tarball clean moreclean

all: $(TARGET)

tarball: shell.tar.gz

shell.tar.gz: $(SOURCES) $(HEADERS) $(META_SOURCES) $(META)
tar -czf $@ $^

check:
@./check.py

clean:
rm -f $(TARGET)
rm -f *.o *.out
rm -f parser/*.o parser/*.out
rm -f *.aux *.log *.ltx *~
rm -f *.tar.gz

moreclean: clean
rm -f $(GENERATED_SOURCES) $(GENERATED_HEADERS)
rm -f $(LEMON)

$(TARGET): $(SOURCES:.c=.o) $(GENERATED_SOURCES:.c=.o)
$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^ $(LIBS)

$(SOURCES:.c=.o): $(HEADERS) $(GENERATED_HEADERS)

$(LEMON): parser/lemon.c
$(CC) $(CFLAGS) -o $@ $<

parser/parser.h: parser/parser.c
parser/parser.c: parser/parser.y $(LEMON)
$(LEMON) $<

parser/lex.yy.h parser/lex.yy.c: parser/lexer.l
$(LEX) --header-file=parser/lex.yy.h -o parser/lex.yy.c $<

Но у меня возникают такие проблемы, какон использует gnu99 и readline и выдает много ошибок и предупреждений при попытке компилировать его с помощью Clion.

...