I've been tinkering with a little "project" to create Visual Studio wizards that aid in the creation of Amiga projects using VS. The wizard basically creates a Makefile project that points to a GCC cross compiler installed on the machine. This whole idea is based on
this news item posted by Arthur Moyer on the "late" UtilityBase some time ago.
Bare in mind, I'm no C++ expert, and even less familiar with makefiles, which is exactly why I'm posing these questions here, to get a clue as to what certain things mean.
For example, here's the basic makefile that I started with:
# Project: Hello
# Compiler: m68k-Amiga-OS3
# Compiler Type: MingW 3
# GNU Makefile template for Visual Studio
CPP = m68k-amigaos-g++.exe
CC = m68k-amigaos-gcc.exe
WINDRES = windres.exe
OBJ = Hello.o
LINKOBJ = Hello.o
LIBS = -L"P:\Windows\AmiDevCpp\usr\local\amiga\m68k-amigaos\lib"
-L"P:\Windows\AmiDevCpp\usr\local\amiga\m68k-amigaos\lib\libb\libnix"
INCS = -I"P:\Windows\AmiDevCpp\usr\local\amiga\m68k-amigaos\sys-include"
CXXINCS = -I"P:\Windows\AmiDevCpp\usr\local\amiga\m68k-amigaos\sys-include"
RCINCS = --include-dir "P:\Windows\AmiDevCpp\include\c++\3.4.2\backward"
BIN = Hello
DEFINES = AMIGA
CXXFLAGS = $(CXXINCS) $(DEFINES) -s -noixemul
CFLAGS = $(INCS) $(DEFINES) -s -noixemul
GPROF = gprof.exe
RM = rm -f
LINK = m68k-amigaos-g++.exe
.PHONY: all all-before all-after clean clean-custom
all: all-before $(BIN) all-after
clean: clean-custom
$(RM) $(OBJ) $(BIN)
$(BIN): $(OBJ)
$(LINK) $(LINKOBJ) -o "Hello" $(LIBS)
Hello.o: $(GLOBALDEPS) main.cpp
$(CPP) -c main.cpp -o Hello.o $(CXXFLAGS)
So, here are a couple of questions I have about this GNU makefile which was generated by AmiDevCpp.
What does RCINCS mean, and why is it separate from INCS and CXXINCS? The makefile built by AmiDevCpp pointed it to "P:/Windows/AMIDEV~1/" but if I point it to "P:\Windows\AmiDevCpp\include\c++\3.4.2\backward" (my installation, obviously
) and include it as a reference in the Visual Studio project, Intellisense works as it should.
I'm a little concerned about that reference, especially the meaning of the directory "backward". If anyone has any thoughts on that, feedback would be appreciated.
I think I understand about the -noixemul flag, it means "no unix emulation" but what does it really do? Thoughts appreciated.
Finally, what does that -s flag represent?
Any and all feedback is appreciated.