gbadev.org forum archive

This is a read-only mirror of the content originally found on forum.gbadev.org (now offline), salvaged from Wayback machine copies. A new forum can be found here.

DS development > help with makefile

#147859 - tornadokick - Sat Dec 29, 2007 9:25 am

Hello all. It's been too long for me to come back here. I hope that I can concentrate more on this in the future, so I don't have to take such a hiatus again.

I'm trying to get the program to work, but I'm having some difficulty.

I tried to reinstall the devkitPRO directory. I tried taking a sample program I had and rewrite the make file. Running the makefile causes my program to come up with errors when trying to run.

The biggest problem is that the compiler won't recognize the nds.h file that (should be/is) included in the beginning of the file

Running my make file gives the following output

Code:

C:\devkitPro\test>cd \

C:\>cd c:\devkitPro\libnds\include

C:\devkitPro\libnds\include>path=C:\devkitadv\bin;C:\devkitPro\devkitARM\bin;C:\
devkitPro\libnds\include;C:\devkitPro\test

C:\devkitPro\libnds\include>arm-eabi-c++ arm7_main.cpp arm9_main.cpp -o test.elf
 -lm
In file included from arm7_main.cpp:6:
nds.h:53:2: error: #error Either ARM7 or ARM9 must be defined
arm7_main.cpp: In function 'void InterruptHandler()':
arm7_main.cpp:26: error: 'volatile struct sTransferRegion' has no member named '
curtime'
arm7_main.cpp:33: error: 'REG_KEYXY' was not declared in this scope
/*multiple error messages removed, all undeclared variables*/

// No clue about where objcopy is. 
C:\devkitPro\libnds\include>objcopy -O binary test.elf attempt.nds
'objcopy' is not recognized as an internal or external command,
operable program or batch file.

C:\devkitPro\libnds\include>pause
Press any key to continue . . .


The arm7_main.cpp file has the following contents:

Code:

//////////////////////////////////////////////////////////////////////
// Demo1 ARM7 Code - Based on an example shipped with NDSLIB.
// Chris Double (chris.double@double.co.nz)
//////////////////////////////////////////////////////////////////////
 
#include "nds.h"

#define TOUCH_CAL_X1 (*(vs16*)0x027FFCD8)
#define TOUCH_CAL_Y1 (*(vs16*)0x027FFCDA)

/*Code removed to conserve space*/

int main(int argc, char ** argv) {
  // Reset the clock if needed
  rtcReset();

  //enable sound
  SOUND_CR = SCHANNEL_ENABLE | SOUND_VOL(0x7F);
  IPC->soundData = 0;
 
  // Set up the interrupt handler
  REG_IME = 0;
  IRQ_HANDLER = &InterruptHandler;
  REG_IE = IRQ_VBLANK;
  REG_IF = ~0;
  DISP_SR = DISP_VBLANK_IRQ;
  REG_IME = 1;

  // Keep the ARM7 out of main RAM
  while (1) swiWaitForVBlank();
  return 0;
}



On my computer, there exists the following files:

C:\devkitPro\test\nds.h
C:\devkitPro\test\arm7_main.cpp
C:\devkitPro\test\arm9_main.cpp
C:\devkitPro\devkitARM\bin\arm-eabi-c++.exe
C:\devkitpro\libnds\include\nds.h

c:\devkitadv\bin doesn't exist.

I'm assuming that my biggest problem is that I don't know how to assign a value to PATH.

To summarize, I have two things I need help finding out:
1. How to get my code to compile the nds.h file.
2. How to handle the lack of a objcopy.exe file, where to find a replacement, etc.

If you need any more information, I'll be happy to give more information if it'll help. Also, if anyone knows an irc channel that I might be able to get some help, I'd greatly appreciate it.

(I'm sorry if this is a bit confusing, I'm a bit tired right now as it's after 3 am right now. If you need any clarification, I'll be happy to answer!)

PLEASE HELP!!

#147862 - theli - Sat Dec 29, 2007 9:44 am

Quote:
#error Either ARM7 or ARM9

that is - define ARM7 or ARM9 :)

#147869 - wintermute - Sat Dec 29, 2007 1:42 pm

Your best option is to use the devkitPro windows installer found at http://www.devkitpro.org/downloads/devkitpro-windows-installer/

Unfortunately Chris hasn't updated his example code in a long time and even then his makefiles and build process were awful. The installer will download and install a set of examples which also include templates to get you started with your own projects.

The tutorials at http://dev-scene.com/NDS/Tutorials will help a bit.

The main IRC channel is #dsdev on blitzed.org.
_________________
devkitPro - professional toolchains at amateur prices
devkitPro IRC support
Personal Blog

#147878 - tornadokick - Sat Dec 29, 2007 6:05 pm

wintermute wrote:
Your best option is to use the devkitPro windows installer found at http://www.devkitpro.org/downloads/devkitpro-windows-installer/

Unfortunately Chris hasn't updated his example code in a long time and even then his makefiles and build process were awful. The installer will download and install a set of examples which also include templates to get you started with your own projects.

The tutorials at http://dev-scene.com/NDS/Tutorials will help a bit.

The main IRC channel is #dsdev on blitzed.org.


Beautiful.

You don't know how much I appreciate this.

*starts reading*