Homebrew [Help] How to compile a CIA from Github

spkuja

Well-Known Member
OP
Member
Joined
May 7, 2007
Messages
307
Trophies
1
Age
35
Website
www.glaciergaming.co.uk
XP
800
Country
As the title says.

How would I compile the CIA file from a github?

I know I need to use "make" but I cannot for the life of me find how to install this on Windows 10....

Any help would be greatly appreciated!
 

Somebody Whoisbored

it's all okeydokey
Member
Joined
May 12, 2016
Messages
478
Trophies
0
Age
22
Location
hypeland
XP
227
Country
United States
As the title says.

How would I compile the CIA file from a github?

I know I need to use "make" but I cannot for the life of me find how to install this on Windows 10....

Any help would be greatly appreciated!

Simply install devkitPro. It comes with make and everything needed to build 3DS homebrew. Make sure to enable devkitARM in the installation if it isn't already.
 

Somebody Whoisbored

it's all okeydokey
Member
Joined
May 12, 2016
Messages
478
Trophies
0
Age
22
Location
hypeland
XP
227
Country
United States
I've tried that already. When I run: make "Path\to\file\Makefile"

I get: make: Nothing to be done for 'Path\to\file\'.

Any clues?

Try running make within the directory by either cd'ing to it or hold shift-right click in the folder and selecting Run command window here. Then just run "make"
 

spkuja

Well-Known Member
OP
Member
Joined
May 7, 2007
Messages
307
Trophies
1
Age
35
Website
www.glaciergaming.co.uk
XP
800
Country
What do you want to be compiled? I'll compile it for you :3

Thank you for the offer, but I need to work this out for myself :)

Try running make within the directory by either cd'ing to it or hold shift-right click in the folder and selecting Run command window here. Then just run "make"

I think that worked but it didn't output a CIA. Do I need to run Buildtools separately?
 

Tenshi_Okami

Well-Known Member
Member
Joined
Nov 3, 2015
Messages
1,490
Trophies
0
Age
25
XP
1,616
Country
Puerto Rico
Thank you for the offer, but I need to work this out for myself :)



I think that worked but it didn't output a CIA. Do I need to run Buildtools separately?
Well, what's the GitHub? Probably needs some stuff installed rather than just DevkitPro
 

spkuja

Well-Known Member
OP
Member
Joined
May 7, 2007
Messages
307
Trophies
1
Age
35
Website
www.glaciergaming.co.uk
XP
800
Country
Most likely. What files did it output?

I think I know the issue. It's throwing an error:

Code:
source/ui/section/types.h:44:2: error: expected '}' before numeric constant
source/ui/section/types.h:44:2: error: expected unqualified-id before numeric constant
In file included from source/ui/section/lib.h:38:0,
                 from source/ui/section/utils.cpp:19:
source/ui/section/types.h:48:1: error: expected declaration before '}' token
 } endianness_flag;

The file that's throwing the error has this code in it:

Code:
/**
Copyright 2013 3DSGuy

This file is part of make_cdn_cia.

make_cdn_cia is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

make_cdn_cia is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with make_cdn_cia.  If not, see <http://www.gnu.org/licenses/>.
**/
#include <stdlib.h>
#include <stdint.h>
//Bools
typedef enum
{
    False,
    True
} _boolean;

typedef enum
{
    Good,
    Fail
} return_basic;

typedef enum
{
    ARGC_FAIL = 1,
    ARGV_FAIL,
    IO_FAIL,
    FILE_PROCESS_FAIL
} errors;

typedef enum
{
    BIG_ENDIAN = 0,
    LITTLE_ENDIAN = 1,
    BE = 0,
    LE = 1
} endianness_flag;

I won't lie, I know nothing about the above code so I don't know how to fix it
 

Somebody Whoisbored

it's all okeydokey
Member
Joined
May 12, 2016
Messages
478
Trophies
0
Age
22
Location
hypeland
XP
227
Country
United States
I think I know the issue. It's throwing an error:

Code:
source/ui/section/types.h:44:2: error: expected '}' before numeric constant
source/ui/section/types.h:44:2: error: expected unqualified-id before numeric constant
In file included from source/ui/section/lib.h:38:0,
                 from source/ui/section/utils.cpp:19:
source/ui/section/types.h:48:1: error: expected declaration before '}' token
 } endianness_flag;

The file that's throwing the error has this code in it:

Code:
/**
Copyright 2013 3DSGuy

This file is part of make_cdn_cia.

make_cdn_cia is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

make_cdn_cia is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with make_cdn_cia.  If not, see <http://www.gnu.org/licenses/>.
**/
#include <stdlib.h>
#include <stdint.h>
//Bools
typedef enum
{
    False,
    True
} _boolean;

typedef enum
{
    Good,
    Fail
} return_basic;

typedef enum
{
    ARGC_FAIL = 1,
    ARGV_FAIL,
    IO_FAIL,
    FILE_PROCESS_FAIL
} errors;

typedef enum
{
    BIG_ENDIAN = 0,
    LITTLE_ENDIAN = 1,
    BE = 0,
    LE = 1
} endianness_flag;

I won't lie, I know nothing about the above code so I don't know how to fix it

I'm not much of a C++ coder myself. So your guess is as good as mine. Check if the project has any specific ways of building it, or if it is just make.
 

PewnyPL

Well-Known Member
Member
Joined
Feb 2, 2014
Messages
771
Trophies
1
XP
2,171
Country
Poland
From what I see online, this is because in another part of the program (or most likely in the libraries themselves) BIG_ENDIAN is already defined as a constant, so here, the preprocessor just substitutes that word for whatever value it is (let's say, 1) so the code looks like 1 = 1. Most likely, the homebrew you are trying to compile was using an older version of devkitPro, or ctrulib. You'd need to install those versions instead of current one, but figuring out which one is needed... now this will be a pain.
 
  • Like
Reactions: spkuja

Site & Scene News

Popular threads in this forum

Recent Content

General chit-chat
Help Users
  • No one is chatting at the moment.
    Xdqwerty @ Xdqwerty: good night