96 lines
2.0 KiB
Makefile
96 lines
2.0 KiB
Makefile
export SHELLOPTS := igncr
|
|
|
|
APPS := t32rem t32remtest t32apicmd t32apinotify t32fdxhost
|
|
ifneq ($(wildcard t32_arc_sim_test.c),)
|
|
APPS += t32_arc_sim_test
|
|
endif
|
|
|
|
VPATH := . ../src
|
|
ENV_NAME := $(shell uname -s)
|
|
PLATFORM := $(findstring $(shell uname -m),x86_64)
|
|
|
|
LOPT :=
|
|
ifneq ($(findstring CYGWIN,$(ENV_NAME)),)
|
|
ifneq ($(findstring 64,$(PLATFORM)),)
|
|
OF := windows64
|
|
CC := x86_64-w64-mingw32-gcc
|
|
else
|
|
OF := windows
|
|
CC := i686-pc-mingw32-gcc
|
|
endif
|
|
COPT := -DT32HOST_LE
|
|
LOPT := -lws2_32
|
|
EXE := .exe
|
|
endif
|
|
|
|
ifneq ($(findstring Linux,$(ENV_NAME)),)
|
|
ifneq ($(findstring 64,$(PLATFORM)),)
|
|
OF := pc_linux64
|
|
else
|
|
OF := pc_linux
|
|
endif
|
|
CC := gcc
|
|
COPT := -DT32HOST_LE
|
|
endif
|
|
|
|
ifneq ($(findstring SunOS,$(ENV_NAME)),)
|
|
OF := sun
|
|
CC := cc
|
|
COPT := -std=c11 -DT32HOST_BE -DT32HOST_UNIX -DT32HOST_SOL
|
|
LOPT := -lsocket
|
|
endif
|
|
|
|
ifeq ($(OF),)
|
|
ifneq ($(findstring .exe,$(SHELL))$(findstring .EXE,$(SHELL)),)
|
|
$(error Please use nmake on Windows or call GNU make from Cygwin)
|
|
endif
|
|
endif
|
|
|
|
|
|
OPTIMIZE := -O2 -fno-inline
|
|
ifeq ($(DEBUG),1)
|
|
OPTIMIZE := -no-pie -Og -g
|
|
LOPT := -no-pie -g $(LOPT)
|
|
COPT += -DDEBUG
|
|
endif
|
|
|
|
OPT-hremote := -DENABLE_NOTIFICATION
|
|
OPT-t32apinotify := -DENABLE_NOTIFICATION
|
|
|
|
RCLOBJS := $(OF)/hremote.o $(OF)/hlinknet.o $(OF)/t32nettcp.o $(OF)/tcpsimple2.o
|
|
EXEPREFIX :=
|
|
|
|
APPEXES :=
|
|
$(foreach APP, $(APPS), $(eval APPEXES := $(APPEXES) $(EXEPREFIX)$(APP)$(EXE)))
|
|
|
|
all: $(APPEXES)
|
|
|
|
$(OF):
|
|
mkdir $@
|
|
|
|
define COMPILE_TEMPLATE
|
|
$(EXEPREFIX)$(APP)$(EXE) : $(OF)/$(EXEPREFIX)$(APP)$(EXE)
|
|
cp $$< $$@
|
|
|
|
$(OF)/$(EXEPREFIX)$(APP)$(EXE) : $(OF)/$(APP).o $(RCLOBJS)
|
|
$(CC) -o $$@ $$^ $(LOPT)
|
|
endef
|
|
|
|
$(foreach APP, $(APPS), $(eval $(COMPILE_TEMPLATE)))
|
|
|
|
|
|
.PRECIOUS : $(OF)/%.o
|
|
$(OF)/%.o: %.c t32.h $(MAKEFILE_LIST) | $(OF)
|
|
$(CC) $(addprefix -I,$(VPATH)) $(OPTIMIZE) -c $(COPT) -o $@ $< $(OPT-$(basename $(@F)))
|
|
|
|
|
|
ifneq ($(wildcard $(OF)),)
|
|
CLEAN:=-rm -rf $(OF)
|
|
else
|
|
CLEAN:=
|
|
endif
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
$(CLEAN)
|