Using devkitPro and SGADE together?
Hello everyone! :-D
First of all, it surprises me A LOT that Google only shows only 7 results for "devkitPro SGADE" and 20 results if I separate devkit and Pro... :-/
Now, I want to compile the SGADE tutorial Boulder Bombers Advance:
http://www.suddenpresence.com/bbatutorial/chapter06.html
using devkitPro instead of DevKit Advance... How would I do that? The makefile asks me for the DKA directory, but I don't have it!
Has anyone done this before? Thanks! ;-)
PS: This is a previous topic:
http://www.gamedev.net/community/forums/topic.asp?topic_id=390152
So you subsitute in the makefile the DKA directories to the DKP ones.
eg DevkitAdv\XYZ to DevKitPro\XYZ
eg DevkitAdv\XYZ to DevKitPro\XYZ
Nope -
Do I have to put GCC in there? How do I get my GCC install directory? Thanks! ;-)
[kixdemp@localhost bba-c3]$ makeMaking bin/crt0.omake: /home/kixdemp/progs/devkitpro/devkitARM/bin/gcc: Command not foundmake: *** [bin/crt0.o] Error 127
Do I have to put GCC in there? How do I get my GCC install directory? Thanks! ;-)
Sure! Here it is:
Can you see what's wrong? Thanks! ;-)
# -----------------------------------------------------------------------------# \file makefile# \brief The SGADE template make file# \date September 5, 2002# # \author Jaap Suter, Mark T. Price# # This file contains the make-instructions for a SGADE project. In# order to use this make file you need to change # GCC_DIR, # PROJECT_DIR,# SOCRATES_LIB_DIR and# SOCRATES_INC_DIR and# to the locations on your own computer.## -----------------------------------------------------------------------------# -----------------------------------------------------------------------------# Project name definition;# -----------------------------------------------------------------------------PROJECT = BBAdvance# -----------------------------------------------------------------------------# Base directory of the project. Replace this with wherever # you have put the sample application on your computer# -----------------------------------------------------------------------------PROJECT_DIR = .# -----------------------------------------------------------------------------# GCC Version you're using. If you're using the latest DevKitAdv this # should be correct already.# -----------------------------------------------------------------------------GCC_VERSION = 3.0.2# -----------------------------------------------------------------------------# Base directory for GCC Arm-Agb-Elf compiler. Replace with # wherever you have put it. # -----------------------------------------------------------------------------GCC_DIR = /home/kixdemp/progs/devkitpro/devkitARM# -----------------------------------------------------------------------------# Socrates library and header directories. Replace this with wherever # you have put the Socrates on your computer# -----------------------------------------------------------------------------SOCRATES_LIB_DIR = /home/kixdemp/progs/devkitpro/devkitARM/lib/SOCRATES_INC_DIR = /home/kixdemp/progs/devkitpro/devkitARM/include/# -----------------------------------------------------------------------------# Socrates library itself;# -----------------------------------------------------------------------------SOCRATES_LIB = $(SOCRATES_LIB_DIR)/libSocrates.a# -----------------------------------------------------------------------------# Compiler directories for includes and libs.# Assuming you are using Devkit Advance there should be no need to change# these, since they are derived from the above CMP_DIR directory definition.# -----------------------------------------------------------------------------STD_LIB_DIR0 = $(GCC_DIR)/lib/gcc-lib/arm-agb-elf/$(GCC_VERSION)/interworkSTD_LIB_DIR1 = $(GCC_DIR)/arm-agb-elf/lib/interworkSTD_INC_DIR0 = $(GCC_DIR)/lib/gcc-lib/arm-agb-elf/$(GCC_VERSION)/includeSTD_INC_DIR1 = $(GCC_DIR)/arm-agb-elf/include# -----------------------------------------------------------------------------# Project directories.# -----------------------------------------------------------------------------INC_DIR = $(PROJECT_DIR)/includeSRC_DIR = $(PROJECT_DIR)/sourceCRT0_S_DIR = $(PROJECT_DIR)LINK_SCRIPT_DIR = $(PROJECT_DIR)OBJ_DIR = $(PROJECT_DIR)/binELF_DIR = $(PROJECT_DIR)/binDAT_DIR = $(PROJECT_DIR)/data# -----------------------------------------------------------------------------# Define the flags for the compiler, the assembler and the linker;# -----------------------------------------------------------------------------C_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I$(STD_INC_DIR0) -I$(STD_INC_DIR1) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asmCPP_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I$(STD_INC_DIR0) -I$(STD_INC_DIR1) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asmS_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I$(STD_INC_DIR0) -I$(STD_INC_DIR1) -mthumb-interwork L_FLAGS = -lSocrates -L $(SOCRATES_LIB_DIR) -L$(STD_LIB_DIR0) -L$(STD_LIB_DIR1) -T $(LINK_SCRIPT_DIR)/lnkscript -lgcc# -----------------------------------------------------------------------------# Define the list of object files# -----------------------------------------------------------------------------O_FILES_FROM_C = $(PROJECT).oO_FILES_FROM_CPP = O_FILES_FROM_C_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_C))O_FILES_FROM_CPP_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_CPP))CRT0_O = $(OBJ_DIR)/crt0.o#CRTBEGIN_O = $(STD_LIB_DIR0)/crtbegin.o#CRTEND_O = $(STD_LIB_DIR0)/crtend.oO_FILES_FULL_PATH = $(CRT0_O) $(CRTBEGIN_O) $(CRTEND_O) $(O_FILES_FROM_C_FULL_PATH) $(O_FILES_FROM_CPP_FULL_PATH) # -----------------------------------------------------------------------------# Define the final dependecy;# -----------------------------------------------------------------------------all : $(PROJECT_DIR)/$(PROJECT).gba @echo Done# -----------------------------------------------------------------------------# Define the copy from .elf to .gba file# -----------------------------------------------------------------------------$(PROJECT_DIR)/$(PROJECT).gba : $(ELF_DIR)/$(PROJECT).elf @echo Object copying @$(GCC_DIR)/bin/objcopy -v -O binary $< $@ # -----------------------------------------------------------------------------# Define the linker instruction;# -----------------------------------------------------------------------------$(ELF_DIR)/$(PROJECT).elf : $(O_FILES_FULL_PATH) $(SOCRATES_LIB) @echo Linking object files @$(GCC_DIR)/bin/ld $(O_FILES_FULL_PATH) -o$@ $(L_FLAGS) # -----------------------------------------------------------------------------# Define the C compiles;# -----------------------------------------------------------------------------$(O_FILES_FROM_C_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.c @echo Making $@ @$(GCC_DIR)/bin/gcc -c $< -o$@ $(C_FLAGS) # -----------------------------------------------------------------------------# Define the CPP compiles;# -----------------------------------------------------------------------------$(O_FILES_FROM_CPP_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cpp @echo Making $@ @$(GCC_DIR)/bin/gcc -c $< -o$@ $(CPP_FLAGS) $(O_FILES_FROM_CXX_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cxx @echo Making $@ @$(GCC_DIR)/bin/gcc -c $< -o$@ $(CPP_FLAGS) $(O_FILES_FROM_CC_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.cc @echo Making $@ @$(GCC_DIR)/bin/gcc -c $< -o$@ $(CPP_FLAGS) # -----------------------------------------------------------------------------# Define the assembly of the crt0 file;# -----------------------------------------------------------------------------$(CRT0_O) : $(OBJ_DIR)/%.o : $(CRT0_S_DIR)/%.S @echo Making $@ @$(GCC_DIR)/bin/gcc -c $< -o$@ $(S_FLAGS) # -----------------------------------------------------------------------------# Clean definition;# -----------------------------------------------------------------------------.PHONY : cleanclean : @echo Cleaning object, .elf and .gba files. @$(GCC_DIR)/bin/rm -f $(OBJ_DIR)/*.o @$(GCC_DIR)/bin/rm -f $(ELF_DIR)/$(PROJECT).elf @$(GCC_DIR)/bin/rm -f $(PROJECT_DIR)/$(PROJECT).gba @echo Clean done...# -----------------------------------------------------------------------------# EOF;# -----------------------------------------------------------------------------
Can you see what's wrong? Thanks! ;-)
That makefile is utter nonsense.
Something more like this is required.
Apologies for replying to an old post - it was flagged by a google alert a few minutes ago.
If you're still having trouble feel free to use the devkitARM mailing list
http://lists.sourceforge.net/lists/listinfo/devkitpro-arm-users
or perhaps the gbadev forums at
http://forum.gbadev.org/
WinterMute (devkitPro Maintainer)
# -----------------------------------------------------------------------------
#
# This file contains the make-instructions for a SGADE project. In
# order to use this make file you need to change
# GCC_DIR,
# PROJECT_DIR,
# SOCRATES_LIB_DIR and
# SOCRATES_INC_DIR and
# to the locations on your own computer.
#
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# Project name definition;
# -----------------------------------------------------------------------------
PROJECT = BBAdvance
# -----------------------------------------------------------------------------
# Base directory of the project. Replace this with wherever
# you have put the sample application on your computer
# -----------------------------------------------------------------------------
PROJECT_DIR = .
# -----------------------------------------------------------------------------
# Base directory for GCC Arm-Agb-Elf compiler. Replace with
# wherever you have put it.
# -----------------------------------------------------------------------------
GCC_DIR = /home/kixdemp/progs/devkitpro/devkitARM
export PATH=$(GCC_DIR)/bin:$(PATH)
# -----------------------------------------------------------------------------
# Socrates library and header directories. Replace this with wherever
# you have put the Socrates on your computer
# -----------------------------------------------------------------------------
SOCRATES_LIB_DIR = /home/kixdemp/progs/Socrates/lib/
SOCRATES_INC_DIR = /home/kixdemp/progs/Socrates/include/
# -----------------------------------------------------------------------------
# Socrates library itself;
# -----------------------------------------------------------------------------
SOCRATES_LIB = $(SOCRATES_LIB_DIR)/libSocrates.a
# -----------------------------------------------------------------------------
# Project directories.
# -----------------------------------------------------------------------------
INC_DIR = $(PROJECT_DIR)/include
SRC_DIR = $(PROJECT_DIR)/source
OBJ_DIR = $(PROJECT_DIR)/bin
ELF_DIR = $(PROJECT_DIR)/bin
DAT_DIR = $(PROJECT_DIR)/data
# -----------------------------------------------------------------------------
# Define the flags for the compiler, the assembler and the linker;
# -----------------------------------------------------------------------------
C_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asm
CPP_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asm
S_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -mthumb-interwork
L_FLAGS = -lSocrates $(SOCRATES_LIB_DIR) -specs=gba.specs
# -----------------------------------------------------------------------------
# Define the list of object files
# -----------------------------------------------------------------------------
O_FILES_FROM_C = $(PROJECT).o
O_FILES_FROM_CPP =
O_FILES_FROM_C_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_C))
O_FILES_FROM_CPP_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_CPP))
O_FILES_FULL_PATH = $(O_FILES_FROM_C_FULL_PATH) $(O_FILES_FROM_CPP_FULL_PATH)
# -----------------------------------------------------------------------------
# Define the final dependecy;
# -----------------------------------------------------------------------------
all : $(PROJECT_DIR)/$(PROJECT).gba
@echo Done
# -----------------------------------------------------------------------------
# Define the copy from .elf to .gba file
# -----------------------------------------------------------------------------
$(PROJECT_DIR)/$(PROJECT).gba : $(ELF_DIR)/$(PROJECT).elf
@echo Object copying
arm-elf-objcopy -v -O binary $<
Something more like this is required.
Apologies for replying to an old post - it was flagged by a google alert a few minutes ago.
If you're still having trouble feel free to use the devkitARM mailing list
http://lists.sourceforge.net/lists/listinfo/devkitpro-arm-users
or perhaps the gbadev forums at
http://forum.gbadev.org/
WinterMute (devkitPro Maintainer)
# -----------------------------------------------------------------------------
#
# This file contains the make-instructions for a SGADE project. In
# order to use this make file you need to change
# GCC_DIR,
# PROJECT_DIR,
# SOCRATES_LIB_DIR and
# SOCRATES_INC_DIR and
# to the locations on your own computer.
#
# -----------------------------------------------------------------------------
# -----------------------------------------------------------------------------
# Project name definition;
# -----------------------------------------------------------------------------
PROJECT = BBAdvance
# -----------------------------------------------------------------------------
# Base directory of the project. Replace this with wherever
# you have put the sample application on your computer
# -----------------------------------------------------------------------------
PROJECT_DIR = .
# -----------------------------------------------------------------------------
# Base directory for GCC Arm-Agb-Elf compiler. Replace with
# wherever you have put it.
# -----------------------------------------------------------------------------
GCC_DIR = /home/kixdemp/progs/devkitpro/devkitARM
export PATH=$(GCC_DIR)/bin:$(PATH)
# -----------------------------------------------------------------------------
# Socrates library and header directories. Replace this with wherever
# you have put the Socrates on your computer
# -----------------------------------------------------------------------------
SOCRATES_LIB_DIR = /home/kixdemp/progs/Socrates/lib/
SOCRATES_INC_DIR = /home/kixdemp/progs/Socrates/include/
# -----------------------------------------------------------------------------
# Socrates library itself;
# -----------------------------------------------------------------------------
SOCRATES_LIB = $(SOCRATES_LIB_DIR)/libSocrates.a
# -----------------------------------------------------------------------------
# Project directories.
# -----------------------------------------------------------------------------
INC_DIR = $(PROJECT_DIR)/include
SRC_DIR = $(PROJECT_DIR)/source
OBJ_DIR = $(PROJECT_DIR)/bin
ELF_DIR = $(PROJECT_DIR)/bin
DAT_DIR = $(PROJECT_DIR)/data
# -----------------------------------------------------------------------------
# Define the flags for the compiler, the assembler and the linker;
# -----------------------------------------------------------------------------
C_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asm
CPP_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -I $(SGADE_SRC_DIR) -mthumb -mthumb-interwork -c -g -Wall -fverbose-asm
S_FLAGS = -I$(DAT_DIR) -I$(INC_DIR) -I $(SOCRATES_INC_DIR) -mthumb-interwork
L_FLAGS = -lSocrates $(SOCRATES_LIB_DIR) -specs=gba.specs
# -----------------------------------------------------------------------------
# Define the list of object files
# -----------------------------------------------------------------------------
O_FILES_FROM_C = $(PROJECT).o
O_FILES_FROM_CPP =
O_FILES_FROM_C_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_C))
O_FILES_FROM_CPP_FULL_PATH = $(addprefix $(OBJ_DIR)/, $(O_FILES_FROM_CPP))
O_FILES_FULL_PATH = $(O_FILES_FROM_C_FULL_PATH) $(O_FILES_FROM_CPP_FULL_PATH)
# -----------------------------------------------------------------------------
# Define the final dependecy;
# -----------------------------------------------------------------------------
all : $(PROJECT_DIR)/$(PROJECT).gba
@echo Done
# -----------------------------------------------------------------------------
# Define the copy from .elf to .gba file
# -----------------------------------------------------------------------------
$(PROJECT_DIR)/$(PROJECT).gba : $(ELF_DIR)/$(PROJECT).elf
@echo Object copying
arm-elf-objcopy -v -O binary $<
oops, sorry that got cut off continued here ...
# -----------------------------------------------------------------------------
# Define the linker instruction;
# -----------------------------------------------------------------------------
$(ELF_DIR)/$(PROJECT).elf : $(O_FILES_FULL_PATH) $(SOCRATES_LIB)
@echo Linking object files
arm-elf-gcc $(O_FILES_FULL_PATH) -o$@ $(L_FLAGS)
# -----------------------------------------------------------------------------
# Define the C compiles;
# -----------------------------------------------------------------------------
$(O_FILES_FROM_C_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
@echo Making $@
arm-elf-gcc -c $<
# -----------------------------------------------------------------------------
# Define the linker instruction;
# -----------------------------------------------------------------------------
$(ELF_DIR)/$(PROJECT).elf : $(O_FILES_FULL_PATH) $(SOCRATES_LIB)
@echo Linking object files
arm-elf-gcc $(O_FILES_FULL_PATH) -o$@ $(L_FLAGS)
# -----------------------------------------------------------------------------
# Define the C compiles;
# -----------------------------------------------------------------------------
$(O_FILES_FROM_C_FULL_PATH) : $(OBJ_DIR)/%.o : $(SRC_DIR)/%.c
@echo Making $@
arm-elf-gcc -c $<
hmm, never mind - I guess not registering before posting that was a bad idea :(
Ask on the mailing list or the gbadev forums linked above, I'll manage a more coherent response there.
Ask on the mailing list or the gbadev forums linked above, I'll manage a more coherent response there.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement