dciabrin / ngdevkit

Open source development for Neo-Geo
GNU Lesser General Public License v3.0
262 stars 26 forks source link

Help me with this error please! #53

Open NeoGeoFreak2004 opened 2 years ago

NeoGeoFreak2004 commented 2 years ago

Hey, so i am trying to install ngdevkit on ubuntu and i am getting a error that is not letting me install the examples for ngdevkit. It says "No Package ngdevkit Found" or something like that so can you help me please!

dciabrin commented 2 years ago

Which Ubuntu version are you using? There are nightly builds available for 20.4 (Focal), 21.04 (Hirsute) and 21.10 (Impish).

NeoGeoFreak2004 commented 2 years ago

I am using Ubuntu 21.04 (Hirsute)

dciabrin commented 2 years ago

OK maybe I misunderstood the question. Are you trying to install ngdevkit-examples with a pre-built ngdevkit, or did you build ngdevkit and now the examples won't compile because running ./configure will fail?

NeoGeoFreak2004 commented 2 years ago

im trying to install ngdevkit-examples with a pre-built ngdevkit.

dciabrin commented 2 years ago

Could you try to go back to the top directory and configure all the shell variables with:

eval $(make shellinit)

Then go back to examples and try to compile them:

autoreconf -iv
./configure
make
NeoGeoFreak2004 commented 2 years ago

Thank you it worked! also how do i make my own makefile for the c++ compiler on ngdevkit since i installed the devkit on ubuntu and idk how to make my own programs and run them on gngeo?

dciabrin commented 2 years ago

Although g++ ships with ngdevkit, I'm not sure the current linkscript links all the necessary segments for the c++ runtime to work. If especially true if you make use of runtime features like exception. That being said, have a look at examples/Makefile.common to see how to change the build command to run g++ instead of gcc.

NeoGeoFreak2004 commented 2 years ago

but here's the thing, where does it say on makefile.common on how to change the build command from gcc to g++?

dciabrin commented 2 years ago

So in a nutshell:

examples/Makefile.config contains all the path to the 68k and z80 compilers. you'd need to adapt it to use m68k-neogeo-elf-g++. In this file you'll find the CFLAGS and LDFLAGS to use come from pkg-config. Keep them in your Makefile as they set up the necessary bits to use the proper link script for neo geo ROMs.

examples/Makefile.common is just boilerplate to create things like directories, zip files, file truncation...

If you want to rebuild a simpler Makefile for your ROM, you can see the output of the compilation of example 01-helloworld on your terminal. It's fairly straightforward: one 68k file compiled as an elf, elf transformed into ROM format, and everything zipped into puzzledp.zip.

NeoGeoFreak2004 commented 2 years ago

But here is the problem, like say i have a c++ file and i copy one of the makefile from the example of the helllo world program, but when i run the make gngeo command it does not work so what do i do with this?

dciabrin commented 2 years ago

Hmmm, after looking at it, the current version of ngdevkit doesn't ship a C++ compiler, I'm not sure when this one got lost, but that surely was a long time ago, probably when I split ngdevkit-toolchain out of ngdevkit...

Thinking more about it adding back g++ will need some time to validate the compilation and whatnot, as well as making sure that the runtime helpers (libngdevkit) link with c++.

For now this is going to be a longer term feature, your best bet is to stick to C for the time being.

NeoGeoFreak2004 commented 2 years ago

Thanks for the answer!

NeoGeoFreak2004 commented 2 years ago

Hey, also so when i type in The make command it says this Makefile:22: ../Makefile.common: No such file or directory make: *** No rule to make target '../Makefile.common'. Stop or something, so can you help me please!

dciabrin commented 2 years ago

I'm not sure whether you're trying to build in the ./examples subdirectory or if you're trying to build something in a separate directory of your own, the issue description lacks details.

I committed an example of standalone directory in https://github.com/dciabrin/ngdevkit-examples/tree/standalone/00-standalone, it contains all the generic Makefiles needed to build an example from a single directory. You only need two things: 1) the assets directory from ngdevkit-examples This is to build some character and sprite ROMs

2) you need to set up ngdevkit in your PATH go in ngdevkit base directory and run:

eval $(make shellinit)

You should now be able to go into the new directory 00-standalone from above and build the example in an isolated way.

NeoGeoFreak2004 commented 2 years ago

I am trying to build something in a separate directory of my own, so how do i make and compile my own c file by using make in a separate directory of my own!

NeoGeoFreak2004 commented 2 years ago

but then when i do what you say it gives me the same error so can you help me!