Using devkitPro and SGADE together?

Started by
7 comments, last by Kixdemp 17 years, 11 months ago
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
Advertisement
So you subsitute in the makefile the DKA directories to the DKP ones.

eg DevkitAdv\XYZ to DevKitPro\XYZ

Steven Yau
[Blog] [Portfolio]

Nope -

[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! ;-)
can you post up your make file?

Steven Yau
[Blog] [Portfolio]

Sure! Here it is:

# -----------------------------------------------------------------------------# \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 $<
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 $<
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.
Nope - GBADev was no help... :-
I'm waiting for a reply on the SGADE mailing list, but it's pretty inactive... I'll try the devkitARM list! Thanks! ;-)

This topic is closed to new replies.

Advertisement