Вопрос
Есть ли способ изменить путь INCLUDE
для фреймворков в Makefile
, чтобы иметь возможность упростить <SDL2/SDL.h>
до <SDL.h>
, как это используется в Windows?
Справочная информация
Я пытаюсь отредактировать Makefile моей команды, чтобы обеспечить кроссплатформенную поддержку нативных форм библиотек и сред Mac, в дополнение к существующим библиотекам Windows, чтобы мы могли сохранить код так же просто, каквозможно.
Мне известно, что #ifdef __APPLE_CC__
используется для переноса кода, специфичного для Mac, но перенос каждого экземпляра <SDL2/SDL.h>
и <SDL.h>
по отдельности кажется чрезмерным.
Включения, необходимые дляlibs в Windows:
#include <SDL.h>
#include <SDL_image.h>
Включает необходимые для фреймворков в Mac:
#include <SDL2/SDL.h>
#include <SDL2_Image/SDL_image.h>
Makefile (Incomplete)
# Windows part
ifeq ($(OS), Windows_NT)
DETECTED_OS = $(OS)
CC = g++ -std=c++11
CFLAGS = -c -IC:/mingwdev/include/SDL2
INCLUDE = -IC:/mingwdev/include/SDL2
LFLAGS = -LC:/mingwdev/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image -o $(OUT)
LFLAGScr = -LC:/mingwdev/lib -lmingw32 -lSDL2main -lSDL2 -lSDL2_image
# Mac part
else ifeq ($(shell uname -s), Darwin)
DETECTED_OS := $(shell uname -s)
CC = g++ -std=c++11
CFLAGS = -c -F/Library/Frameworks # THIS IS WHAT I WANT TO MODIFY #
INCLUDE = -F/Library/Frameworks # THIS IS WHAT I WANT TO MODIFY #
LFLAGS = -framework SDL2 -framework SDL2_image -framework SDL2_ttf -o $(OUT)
LFLAGScr = -framework SDL2 -framework SDL2_image -framework SDL2_ttf
# Final Part
all: $(OUT)
$(OUT): $(OBJ)
$(CC) $^ $(INCLUDE) $(LFLAGS)
obj/%.o: src/%.cpp $(DEP)
$(CC) $< $(CFLAGS) -o $@