mirror of
https://github.com/ctruLua/ctruLua.git
synced 2025-10-27 16:39:29 +00:00
Added CIA, bugfixes, portlibs update
This commit is contained in:
parent
2725dce383
commit
b19ec95cc7
14 changed files with 757 additions and 158 deletions
40
Makefile
40
Makefile
|
|
@ -33,13 +33,19 @@ SOURCES := source libs/lua-5.3.3/src libs/tremor
|
||||||
DATA := data
|
DATA := data
|
||||||
INCLUDES := include libs/lua-5.3.3/src libs/lzlib libs/tremor
|
INCLUDES := include libs/lua-5.3.3/src libs/lzlib libs/tremor
|
||||||
#ROMFS := romfs
|
#ROMFS := romfs
|
||||||
|
ROOT := sdmc:/3ds/ctruLua/
|
||||||
|
|
||||||
APP_TITLE := ctruLua
|
APP_TITLE := ctruLua
|
||||||
APP_DESCRIPTION := Lua for the 3DS. Yes, it works.
|
APP_DESCRIPTION := Lua for the 3DS. Yes, it works.
|
||||||
APP_AUTHOR := Reuh, Firew0lf and NegiAD
|
APP_AUTHOR := Reuh,Ihamfp,Nodyn
|
||||||
|
APP_PRODUCT_CODE := CTR-P-ULUA
|
||||||
|
APP_UNIQUE_ID := 0xB00B5
|
||||||
|
|
||||||
ICON := icon.png
|
ICON := icon.png
|
||||||
|
BANNER := banner.png
|
||||||
|
JINGLE := jingle.wav
|
||||||
APP_VERSION := $(shell git describe --abbrev=0 --tags)
|
APP_VERSION := $(shell git describe --abbrev=0 --tags)
|
||||||
LASTCOMMIT := $(shell git rev-parse HEAD)
|
LASTCOMMIT := $(shell git rev-parse HEAD)
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# options for code generation
|
# options for code generation
|
||||||
|
|
@ -54,6 +60,9 @@ CFLAGS += $(INCLUDE) -DARM11 -D_3DS -DCTR_VERSION=\"$(APP_VERSION)\" -DCTR_BUILD
|
||||||
ifneq ($(ROMFS),)
|
ifneq ($(ROMFS),)
|
||||||
CFLAGS += -DROMFS
|
CFLAGS += -DROMFS
|
||||||
endif
|
endif
|
||||||
|
ifneq ($(ROOT),)
|
||||||
|
CFLAGS += -DROOT=\"$(ROOT)\"
|
||||||
|
endif
|
||||||
|
|
||||||
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
|
CXXFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -std=gnu++11
|
||||||
|
|
||||||
|
|
@ -134,8 +143,14 @@ ifeq ($(strip $(NO_SMDH)),)
|
||||||
export _3DSXFLAGS += --smdh=$(CURDIR)/$(TARGET).smdh
|
export _3DSXFLAGS += --smdh=$(CURDIR)/$(TARGET).smdh
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
export CIA_ARGS := -DAPP_TITLE=$(APP_TITLE) -DAPP_PRODUCT_CODE=$(APP_PRODUCT_CODE) \
|
||||||
|
-DAPP_UNIQUE_ID=$(APP_UNIQUE_ID) \
|
||||||
|
-elf $(OUTPUT).elf -rsf "$(TOPDIR)/ctrulua.rsf" \
|
||||||
|
-icon $(TOPDIR)/icon.bin -banner $(TOPDIR)/banner.bin -exefslogo -target t
|
||||||
|
|
||||||
ifneq ($(ROMFS),)
|
ifneq ($(ROMFS),)
|
||||||
export _3DSXFLAGS += --romfs=$(CURDIR)/$(ROMFS)
|
export _3DSXFLAGS += --romfs=$(CURDIR)/$(ROMFS)
|
||||||
|
export CIA_ARGS += -DAPP_ROMFS_DIR=$(ROMFS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: $(BUILD) clean all
|
.PHONY: $(BUILD) clean all
|
||||||
|
|
@ -147,8 +162,12 @@ $(BUILD):
|
||||||
@[ -d $(BUILD) ] || mkdir -p $(BUILD)
|
@[ -d $(BUILD) ] || mkdir -p $(BUILD)
|
||||||
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile
|
||||||
|
|
||||||
|
$(BUILD)-cia:
|
||||||
|
@[ -d $(BUILD) ] || mkdir -p $(BUILD)
|
||||||
|
@$(MAKE) --no-print-directory -C $(BUILD) -f $(CURDIR)/Makefile $(OUTPUT).cia
|
||||||
|
|
||||||
build-portlibs:
|
build-portlibs:
|
||||||
@make -C libs/3ds_portlibs zlib freetype libjpeg-turbo libpng libogg
|
@make -C libs/3ds_portlibs zlib install-zlib freetype libjpeg-turbo libpng libogg install
|
||||||
|
|
||||||
build-citro3d:
|
build-citro3d:
|
||||||
@make -C libs/citro3d build
|
@make -C libs/citro3d build
|
||||||
|
|
@ -190,7 +209,7 @@ build-doc-st:
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
clean:
|
clean:
|
||||||
@rm -fr $(BUILD) $(TARGET).3dsx $(OUTPUT).smdh $(TARGET).elf
|
@rm -fr $(BUILD) $(TARGET).3dsx $(OUTPUT).smdh $(TARGET).elf banner.bin icon.bin
|
||||||
|
|
||||||
clean-portlibs:
|
clean-portlibs:
|
||||||
@make -C libs/3ds_portlibs clean
|
@make -C libs/3ds_portlibs clean
|
||||||
|
|
@ -242,14 +261,27 @@ DEPENDS := $(OFILES:.o=.d)
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# main targets
|
# main targets
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
all : $(OUTPUT).3dsx $(OUTPUT).cia
|
||||||
|
|
||||||
ifeq ($(strip $(NO_SMDH)),)
|
ifeq ($(strip $(NO_SMDH)),)
|
||||||
$(OUTPUT).3dsx : $(OUTPUT).elf $(OUTPUT).smdh
|
$(OUTPUT).3dsx : $(OUTPUT).elf $(OUTPUT).smdh
|
||||||
else
|
else
|
||||||
$(OUTPUT).3dsx : $(OUTPUT).elf
|
$(OUTPUT).3dsx : $(OUTPUT).elf
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
icon.bin :
|
||||||
|
bannertool makesmdh -s $(APP_TITLE) -l $(APP_TITLE) -p $(APP_AUTHOR) -i $(TOPDIR)/$(ICON) -o $(TOPDIR)/icon.bin -f visible allow3d
|
||||||
|
|
||||||
|
banner.bin :
|
||||||
|
bannertool makebanner -i $(TOPDIR)/$(BANNER) -a $(TOPDIR)/$(JINGLE) -o $(TOPDIR)/banner.bin
|
||||||
|
|
||||||
$(OUTPUT).elf : $(OFILES)
|
$(OUTPUT).elf : $(OFILES)
|
||||||
|
|
||||||
|
$(OUTPUT).cia : $(OUTPUT).elf icon.bin banner.bin
|
||||||
|
makerom -f cia -o $(OUTPUT).cia $(CIA_ARGS)
|
||||||
|
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
# you need a rule like this for each extension you use as binary data
|
# you need a rule like this for each extension you use as binary data
|
||||||
#---------------------------------------------------------------------------------
|
#---------------------------------------------------------------------------------
|
||||||
|
|
|
||||||
223
ctrulua.rsf
Normal file
223
ctrulua.rsf
Normal file
|
|
@ -0,0 +1,223 @@
|
||||||
|
BasicInfo:
|
||||||
|
Title : $(APP_TITLE)
|
||||||
|
ProductCode : $(APP_PRODUCT_CODE)
|
||||||
|
Logo : Nintendo # Nintendo / Licensed / Distributed / iQue / iQueForSystem
|
||||||
|
|
||||||
|
RomFs:
|
||||||
|
# Specifies the root path of the read only file system to include in the ROM.
|
||||||
|
#RootPath : $(ROMFS)
|
||||||
|
|
||||||
|
TitleInfo:
|
||||||
|
Category : Application
|
||||||
|
UniqueId : $(APP_UNIQUE_ID)
|
||||||
|
|
||||||
|
Option:
|
||||||
|
UseOnSD : true # true if App is to be installed to SD
|
||||||
|
FreeProductCode : true # Removes limitations on ProductCode
|
||||||
|
MediaFootPadding : false # If true CCI files are created with padding
|
||||||
|
EnableCrypt : false # Enables encryption for NCCH and CIA
|
||||||
|
EnableCompress : true # Compresses where applicable (currently only exefs:/.code)
|
||||||
|
|
||||||
|
AccessControlInfo:
|
||||||
|
CoreVersion : 2
|
||||||
|
|
||||||
|
# Exheader Format Version
|
||||||
|
DescVersion : 2
|
||||||
|
|
||||||
|
# Minimum Required Kernel Version (below is for 4.5.0)
|
||||||
|
ReleaseKernelMajor : "02"
|
||||||
|
ReleaseKernelMinor : "33"
|
||||||
|
|
||||||
|
# ExtData
|
||||||
|
UseExtSaveData : false # enables ExtData
|
||||||
|
#ExtSaveDataId : 0x300 # only set this when the ID is different to the UniqueId
|
||||||
|
|
||||||
|
# FS:USER Archive Access Permissions
|
||||||
|
# Uncomment as required
|
||||||
|
FileSystemAccess:
|
||||||
|
#- CategorySystemApplication
|
||||||
|
#- CategoryHardwareCheck
|
||||||
|
- CategoryFileSystemTool
|
||||||
|
#- Debug
|
||||||
|
#- TwlCardBackup
|
||||||
|
#- TwlNandData
|
||||||
|
#- Boss
|
||||||
|
- DirectSdmc
|
||||||
|
#- Core
|
||||||
|
#- CtrNandRo
|
||||||
|
#- CtrNandRw
|
||||||
|
#- CtrNandRoWrite
|
||||||
|
#- CategorySystemSettings
|
||||||
|
#- CardBoard
|
||||||
|
#- ExportImportIvs
|
||||||
|
#- DirectSdmcWrite
|
||||||
|
#- SwitchCleanup
|
||||||
|
#- SaveDataMove
|
||||||
|
#- Shop
|
||||||
|
#- Shell
|
||||||
|
#- CategoryHomeMenu
|
||||||
|
|
||||||
|
# Process Settings
|
||||||
|
MemoryType : Application # Application/System/Base
|
||||||
|
SystemMode : 64MB # 64MB(Default)/96MB/80MB/72MB/32MB
|
||||||
|
IdealProcessor : 0
|
||||||
|
AffinityMask : 1
|
||||||
|
Priority : 16
|
||||||
|
MaxCpu : 0 # Let system decide
|
||||||
|
HandleTableSize : 0x200
|
||||||
|
DisableDebug : false
|
||||||
|
EnableForceDebug : false
|
||||||
|
CanWriteSharedPage : true
|
||||||
|
CanUsePrivilegedPriority : false
|
||||||
|
CanUseNonAlphabetAndNumber : true
|
||||||
|
PermitMainFunctionArgument : true
|
||||||
|
CanShareDeviceMemory : true
|
||||||
|
RunnableOnSleep : false
|
||||||
|
SpecialMemoryArrange : true
|
||||||
|
|
||||||
|
# New3DS Exclusive Process Settings
|
||||||
|
SystemModeExt : Legacy # Legacy(Default)/124MB/178MB Legacy:Use Old3DS SystemMode
|
||||||
|
CpuSpeed : 804MHz # 268MHz(Default)/804MHz
|
||||||
|
EnableL2Cache : true # false(default)/true
|
||||||
|
CanAccessCore2 : true
|
||||||
|
|
||||||
|
# Virtual Address Mappings
|
||||||
|
IORegisterMapping:
|
||||||
|
- 1ff00000-1ff7ffff # DSP memory
|
||||||
|
MemoryMapping:
|
||||||
|
- 1f000000-1f5fffff:r # VRAM
|
||||||
|
|
||||||
|
# Accessible SVCs, <Name>:<ID>
|
||||||
|
SystemCallAccess:
|
||||||
|
ArbitrateAddress: 34
|
||||||
|
Break: 60
|
||||||
|
CancelTimer: 28
|
||||||
|
ClearEvent: 25
|
||||||
|
ClearTimer: 29
|
||||||
|
CloseHandle: 35
|
||||||
|
ConnectToPort: 45
|
||||||
|
ControlMemory: 1
|
||||||
|
CreateAddressArbiter: 33
|
||||||
|
CreateEvent: 23
|
||||||
|
CreateMemoryBlock: 30
|
||||||
|
CreateMutex: 19
|
||||||
|
CreateSemaphore: 21
|
||||||
|
CreateThread: 8
|
||||||
|
CreateTimer: 26
|
||||||
|
DuplicateHandle: 39
|
||||||
|
ExitProcess: 3
|
||||||
|
ExitThread: 9
|
||||||
|
GetCurrentProcessorNumber: 17
|
||||||
|
GetHandleInfo: 41
|
||||||
|
GetProcessId: 53
|
||||||
|
GetProcessIdOfThread: 54
|
||||||
|
GetProcessIdealProcessor: 6
|
||||||
|
GetProcessInfo: 43
|
||||||
|
GetResourceLimit: 56
|
||||||
|
GetResourceLimitCurrentValues: 58
|
||||||
|
GetResourceLimitLimitValues: 57
|
||||||
|
GetSystemInfo: 42
|
||||||
|
GetSystemTick: 40
|
||||||
|
GetThreadContext: 59
|
||||||
|
GetThreadId: 55
|
||||||
|
GetThreadIdealProcessor: 15
|
||||||
|
GetThreadInfo: 44
|
||||||
|
GetThreadPriority: 11
|
||||||
|
MapMemoryBlock: 31
|
||||||
|
OutputDebugString: 61
|
||||||
|
QueryMemory: 2
|
||||||
|
ReleaseMutex: 20
|
||||||
|
ReleaseSemaphore: 22
|
||||||
|
SendSyncRequest1: 46
|
||||||
|
SendSyncRequest2: 47
|
||||||
|
SendSyncRequest3: 48
|
||||||
|
SendSyncRequest4: 49
|
||||||
|
SendSyncRequest: 50
|
||||||
|
SetThreadPriority: 12
|
||||||
|
SetTimer: 27
|
||||||
|
SignalEvent: 24
|
||||||
|
SleepThread: 10
|
||||||
|
UnmapMemoryBlock: 32
|
||||||
|
WaitSynchronization1: 36
|
||||||
|
WaitSynchronizationN: 37
|
||||||
|
Backdoor: 123
|
||||||
|
|
||||||
|
# Service List
|
||||||
|
# Maximum 34 services (32 if firmware is prior to 9.3.0)
|
||||||
|
ServiceAccessControl:
|
||||||
|
- cfg:u
|
||||||
|
- fs:USER
|
||||||
|
- gsp::Gpu
|
||||||
|
- hid:USER
|
||||||
|
- ndm:u
|
||||||
|
- pxi:dev
|
||||||
|
- APT:U
|
||||||
|
- ac:u
|
||||||
|
- act:u
|
||||||
|
- am:net
|
||||||
|
- boss:U
|
||||||
|
- cam:u
|
||||||
|
- cecd:u
|
||||||
|
- csnd:SND
|
||||||
|
- frd:u
|
||||||
|
- http:C
|
||||||
|
- ir:USER
|
||||||
|
- ir:u
|
||||||
|
- ir:rst
|
||||||
|
- ldr:ro
|
||||||
|
- mic:u
|
||||||
|
- news:u
|
||||||
|
- nfc:u
|
||||||
|
- nim:aoc
|
||||||
|
- nwm::UDS
|
||||||
|
- ptm:u
|
||||||
|
- qtm:u
|
||||||
|
- soc:U
|
||||||
|
- ssl:C
|
||||||
|
- y2r:u
|
||||||
|
|
||||||
|
|
||||||
|
SystemControlInfo:
|
||||||
|
SaveDataSize: 0K
|
||||||
|
RemasterVersion: 0
|
||||||
|
StackSize: 0x40000
|
||||||
|
|
||||||
|
# Modules that run services listed above should be included below
|
||||||
|
# Maximum 48 dependencies
|
||||||
|
# If a module is listed that isn't present on the 3DS, the title will get stuck at the logo (3ds waves)
|
||||||
|
# So act, nfc and qtm are commented for 4.x support. Uncomment if you need these.
|
||||||
|
# <module name>:<module titleid>
|
||||||
|
Dependency:
|
||||||
|
ac: 0x0004013000002402
|
||||||
|
#act: 0x0004013000003802
|
||||||
|
am: 0x0004013000001502
|
||||||
|
boss: 0x0004013000003402
|
||||||
|
camera: 0x0004013000001602
|
||||||
|
cecd: 0x0004013000002602
|
||||||
|
cfg: 0x0004013000001702
|
||||||
|
codec: 0x0004013000001802
|
||||||
|
csnd: 0x0004013000002702
|
||||||
|
dlp: 0x0004013000002802
|
||||||
|
dsp: 0x0004013000001a02
|
||||||
|
friends: 0x0004013000003202
|
||||||
|
gpio: 0x0004013000001b02
|
||||||
|
gsp: 0x0004013000001c02
|
||||||
|
hid: 0x0004013000001d02
|
||||||
|
http: 0x0004013000002902
|
||||||
|
i2c: 0x0004013000001e02
|
||||||
|
ir: 0x0004013000003302
|
||||||
|
mcu: 0x0004013000001f02
|
||||||
|
mic: 0x0004013000002002
|
||||||
|
ndm: 0x0004013000002b02
|
||||||
|
news: 0x0004013000003502
|
||||||
|
#nfc: 0x0004013000004002
|
||||||
|
nim: 0x0004013000002c02
|
||||||
|
nwm: 0x0004013000002d02
|
||||||
|
pdn: 0x0004013000002102
|
||||||
|
ps: 0x0004013000003102
|
||||||
|
ptm: 0x0004013000002202
|
||||||
|
#qtm: 0x0004013020004202
|
||||||
|
ro: 0x0004013000003702
|
||||||
|
socket: 0x0004013000002e02
|
||||||
|
spi: 0x0004013000002302
|
||||||
|
ssl: 0x0004013000002f02
|
||||||
BIN
jingle.wav
Normal file
BIN
jingle.wav
Normal file
Binary file not shown.
6
libs/3ds_portlibs/.gitignore
vendored
6
libs/3ds_portlibs/.gitignore
vendored
|
|
@ -1,9 +1,9 @@
|
||||||
freetype-*
|
freetype-*
|
||||||
|
jansson-*
|
||||||
libexif-*
|
libexif-*
|
||||||
libjpeg-*
|
libjpeg-*
|
||||||
libpng-*
|
libpng-*
|
||||||
|
libxmp-*
|
||||||
sqlite-*
|
sqlite-*
|
||||||
|
tinyxml2-*
|
||||||
zlib-*
|
zlib-*
|
||||||
libogg-*
|
|
||||||
libvorbis-*
|
|
||||||
build/
|
|
||||||
|
|
@ -1,188 +1,359 @@
|
||||||
FREETYPE := freetype
|
BZIP2 := bzip2
|
||||||
FREETYPE_VERSION := $(FREETYPE)-2.6
|
BZIP2_VERSION := $(BZIP2)-1.0.6
|
||||||
FREETYPE_SRC := $(FREETYPE_VERSION).tar.bz2
|
BZIP2_SRC := $(BZIP2_VERSION).tar.gz
|
||||||
FREETYPE_DOWNLOAD := "http://download.savannah.gnu.org/releases/freetype/freetype-2.6.tar.bz2"
|
BZIP2_DOWNLOAD := "http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz"
|
||||||
|
|
||||||
LIBEXIF := libexif
|
FREETYPE := freetype
|
||||||
LIBEXIF_VERSION := $(LIBEXIF)-0.6.21
|
FREETYPE_VERSION := $(FREETYPE)-2.6.2
|
||||||
LIBEXIF_SRC := $(LIBEXIF_VERSION).tar.bz2
|
FREETYPE_SRC := $(FREETYPE_VERSION).tar.bz2
|
||||||
LIBEXIF_DOWNLOAD := "http://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-0.6.21.tar.bz2"
|
FREETYPE_DOWNLOAD := http://download.savannah.gnu.org/releases/freetype/freetype-2.6.2.tar.bz2
|
||||||
|
|
||||||
LIBJPEGTURBO := libjpeg-turbo
|
GIFLIB := giflib
|
||||||
LIBJPEGTURBO_VERSION := $(LIBJPEGTURBO)-1.4.1
|
GIFLIB_VERSION := $(GIFLIB)-5.1.1
|
||||||
LIBJPEGTURBO_SRC := $(LIBJPEGTURBO_VERSION).tar.gz
|
GIFLIB_SRC := $(GIFLIB_VERSION).tar.bz2
|
||||||
LIBJPEGTURBO_DOWNLOAD := "http://sourceforge.net/projects/libjpeg-turbo/files/1.4.1/libjpeg-turbo-1.4.1.tar.gz"
|
GIFLIB_DOWNLOAD := "http://sourceforge.net/projects/giflib/files/giflib-5.1.1.tar.bz2"
|
||||||
|
|
||||||
LIBPNG := libpng
|
JANSSON := jansson
|
||||||
LIBPNG_VERSION := $(LIBPNG)-1.6.17
|
JANSSON_VERSION := $(JANSSON)-2.7
|
||||||
LIBPNG_SRC := $(LIBPNG_VERSION).tar.xz
|
JANSSON_SRC := $(JANSSON_VERSION).tar.gz
|
||||||
LIBPNG_DOWNLOAD := "http://prdownloads.sourceforge.net/libpng/libpng-1.6.17.tar.xz"
|
JANSSON_DOWNLOAD := https://github.com/akheron/jansson/archive/v2.7.tar.gz
|
||||||
|
|
||||||
SQLITE := sqlite
|
LIBCONFIG := libconfig
|
||||||
SQLITE_VERSION := $(SQLITE)-autoconf-3081002
|
LIBCONFIG_VERSION := $(LIBCONFIG)-1.5
|
||||||
SQLITE_SRC := $(SQLITE_VERSION).tar.gz
|
LIBCONFIG_SRC := $(LIBCONFIG_VERSION).tar.gz
|
||||||
SQLITE_DOWNLOAD := "http://www.sqlite.org/2015/sqlite-autoconf-3081002.tar.gz"
|
LIBCONFIG_DOWNLOAD := "http://www.hyperrealm.com/libconfig/libconfig-1.5.tar.gz"
|
||||||
|
|
||||||
ZLIB := zlib
|
LIBEXIF := libexif
|
||||||
ZLIB_VERSION := $(ZLIB)-1.2.8
|
LIBEXIF_VERSION := $(LIBEXIF)-0.6.21
|
||||||
ZLIB_SRC := $(ZLIB_VERSION).tar.gz
|
LIBEXIF_SRC := $(LIBEXIF_VERSION).tar.bz2
|
||||||
ZLIB_DOWNLOAD := "http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz"
|
LIBEXIF_DOWNLOAD := http://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-0.6.21.tar.bz2/download
|
||||||
|
|
||||||
LIBOGG := libogg
|
LIBJPEGTURBO := libjpeg-turbo
|
||||||
LIBOGG_VERSION := $(LIBOGG)-1.3.2
|
LIBJPEGTURBO_VERSION := $(LIBJPEGTURBO)-1.4.2
|
||||||
LIBOGG_SRC := $(LIBOGG_VERSION).tar.gz
|
LIBJPEGTURBO_SRC := $(LIBJPEGTURBO_VERSION).tar.gz
|
||||||
LIBOGG_DOWNLOAD := "http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.gz"
|
LIBJPEGTURBO_DOWNLOAD := http://sourceforge.net/projects/libjpeg-turbo/files/1.4.2/libjpeg-turbo-1.4.2.tar.gz/download
|
||||||
|
|
||||||
LIBVORBIS := libvorbis
|
LIBMAD := libmad
|
||||||
LIBVORBIS_VERSION := $(LIBVORBIS)-1.3.5
|
LIBMAD_VERSION := $(LIBMAD)-0.15.1b
|
||||||
LIBVORBIS_SRC := $(LIBVORBIS_VERSION).tar.gz
|
LIBMAD_SRC := $(LIBMAD_VERSION).tar.gz
|
||||||
LIBVORBIS_DOWNLOAD := "http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.5.tar.gz"
|
LIBMAD_DOWNLOAD := "http://sourceforge.net/projects/mad/files/libmad/0.15.1b/libmad-0.15.1b.tar.gz"
|
||||||
|
|
||||||
export PORTLIBS := $(CURDIR)/build
|
LIBOGG := libogg
|
||||||
export PATH := $(DEVKITARM)/bin:$(PATH)
|
LIBOGG_VERSION := $(LIBOGG)-1.3.2
|
||||||
export PKG_CONFIG_PATH := $(PORTLIBS)/lib/pkgconfig
|
LIBOGG_SRC := $(LIBOGG_VERSION).tar.xz
|
||||||
export CFLAGS := -march=armv6k -mtune=mpcore -mfloat-abi=hard -O3 \
|
LIBOGG_DOWNLOAD := "http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz"
|
||||||
-mword-relocations -fomit-frame-pointer -ffast-math
|
|
||||||
export CPPFLAGS := -I$(PORTLIBS)/include
|
|
||||||
export LDFLAGS := -L$(PORTLIBS)/lib
|
|
||||||
|
|
||||||
.PHONY: all old_all install install-zlib clean \
|
LIBPNG := libpng
|
||||||
|
LIBPNG_VERSION := $(LIBPNG)-1.6.21
|
||||||
|
LIBPNG_SRC := $(LIBPNG_VERSION).tar.xz
|
||||||
|
LIBPNG_DOWNLOAD := http://prdownloads.sourceforge.net/libpng/libpng-1.6.21.tar.xz?download
|
||||||
|
|
||||||
|
LIBXML2 := libxml2
|
||||||
|
LIBXML2_VERSION := $(LIBXML2)-2.9.3
|
||||||
|
LIBXML2_SRC := $(LIBXML2_VERSION).tar.gz
|
||||||
|
LIBXML2_DOWNLOAD := "http://xmlsoft.org/sources/libxml2-2.9.3.tar.gz"
|
||||||
|
|
||||||
|
LIBXMP_LITE := libxmp-lite
|
||||||
|
LIBXMP_LITE_VERSION := $(LIBXMP_LITE)-4.3.10
|
||||||
|
LIBXMP_LITE_SRC := $(LIBXMP_LITE_VERSION).tar.gz
|
||||||
|
LIBXMP_LITE_DOWNLOAD := http://sourceforge.net/projects/xmp/files/libxmp/4.3.10/libxmp-lite-4.3.10.tar.gz/download
|
||||||
|
|
||||||
|
MBED := mbedtls
|
||||||
|
MBED_VERSION := $(MBED)-2.2.1
|
||||||
|
MBED_SRC := $(MBED_VERSION).tgz
|
||||||
|
MBED_DOWNLOAD := "https://tls.mbed.org/download/mbedtls-2.2.1-gpl.tgz"
|
||||||
|
|
||||||
|
SQLITE := sqlite
|
||||||
|
SQLITE_VERSION := $(SQLITE)-autoconf-3100200
|
||||||
|
SQLITE_SRC := $(SQLITE_VERSION).tar.gz
|
||||||
|
SQLITE_DOWNLOAD := https://www.sqlite.org/2016/sqlite-autoconf-3100200.tar.gz
|
||||||
|
|
||||||
|
TINYXML := tinyxml2
|
||||||
|
TINYXML_VERSION := $(TINYXML)-3.0.0
|
||||||
|
TINYXML_SRC := $(TINYXML_VERSION).tar.gz
|
||||||
|
TINYXML_DOWNLOAD := https://github.com/leethomason/tinyxml2/archive/3.0.0.tar.gz
|
||||||
|
|
||||||
|
TREMOR := tremor
|
||||||
|
TREMOR_VERSION := $(TREMOR)-2a1a8f6
|
||||||
|
TREMOR_SRC := $(TREMOR_VERSION).tar.gz
|
||||||
|
TREMOR_DOWNLOAD := https://git.xiph.org/?p=tremor.git;a=snapshot;h=2a1a8f621e500fdf0749f115e2206f82919560a3;sf=tgz
|
||||||
|
|
||||||
|
XZ := xz
|
||||||
|
XZ_VERSION := $(XZ)-5.2.2
|
||||||
|
XZ_SRC := $(XZ_VERSION).tar.xz
|
||||||
|
XZ_DOWNLOAD := "http://tukaani.org/xz/xz-5.2.2.tar.xz"
|
||||||
|
|
||||||
|
ZLIB := zlib
|
||||||
|
ZLIB_VERSION := $(ZLIB)-1.2.8
|
||||||
|
ZLIB_SRC := $(ZLIB_VERSION).tar.gz
|
||||||
|
ZLIB_DOWNLOAD := http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz?download
|
||||||
|
|
||||||
|
export PORTLIBS_PATH := $(DEVKITPRO)/portlibs
|
||||||
|
export PATH := $(DEVKITARM)/bin:$(PORTLIBS_PATH)/3ds/bin:$(PORTLIBS_PATH)/armv6k/bin:$(PATH)
|
||||||
|
export PKG_CONFIG := $(PWD)/arm-none-eabi-pkg-config
|
||||||
|
|
||||||
|
export CFLAGS := -march=armv6k -mtune=mpcore -mfloat-abi=hard -mtp=soft -O3 -mword-relocations -ffunction-sections
|
||||||
|
export CPPFLAGS := -I$(PORTLIBS_PATH)/armv6k/include
|
||||||
|
export LDFLAGS := -L$(PORTLIBS_PATH)/armv6k/lib
|
||||||
|
|
||||||
|
.PHONY: all install install-zlib clean download \
|
||||||
|
$(BZIP2) \
|
||||||
$(FREETYPE) \
|
$(FREETYPE) \
|
||||||
|
$(GIFLIB) \
|
||||||
|
$(JANSSON) \
|
||||||
|
$(LIBCONFIG) \
|
||||||
$(LIBEXIF) \
|
$(LIBEXIF) \
|
||||||
$(LIBJPEGTURBO) \
|
$(LIBJPEGTURBO) \
|
||||||
|
$(LIBMAD) \
|
||||||
|
$(LIBOGG) \
|
||||||
$(LIBPNG) \
|
$(LIBPNG) \
|
||||||
|
$(MBED) \
|
||||||
|
$(LIBXML2) \
|
||||||
|
$(LIBXMP_LITE) \
|
||||||
$(SQLITE) \
|
$(SQLITE) \
|
||||||
|
$(TINYXML) \
|
||||||
|
$(TREMOR) \
|
||||||
|
$(XZ) \
|
||||||
$(ZLIB)
|
$(ZLIB)
|
||||||
all: zlib install-zlib freetype libexif libjpeg-turbo libpng sqlite install
|
|
||||||
@echo "Finished!"
|
|
||||||
|
|
||||||
create_build_dir:
|
all:
|
||||||
@[ -d $(CURDIR)/build ] || mkdir -p $(CURDIR)/build
|
|
||||||
@[ -d $(CURDIR)/build/include ] || mkdir -p $(CURDIR)/build/include
|
|
||||||
@[ -d $(CURDIR)/build/lib ] || mkdir -p $(CURDIR)/build/lib
|
|
||||||
|
|
||||||
old_all:
|
|
||||||
@echo "Please choose one of the following targets:"
|
@echo "Please choose one of the following targets:"
|
||||||
|
@echo " $(BZIP2)"
|
||||||
@echo " $(FREETYPE) (requires zlib to be installed)"
|
@echo " $(FREETYPE) (requires zlib to be installed)"
|
||||||
|
@echo " $(GIFLIB)"
|
||||||
|
@echo " $(JANSSON)"
|
||||||
|
@echo " $(LIBCONFIG)"
|
||||||
@echo " $(LIBEXIF)"
|
@echo " $(LIBEXIF)"
|
||||||
@echo " $(LIBJPEGTURBO)"
|
@echo " $(LIBJPEGTURBO)"
|
||||||
|
@echo " $(LIBMAD)"
|
||||||
|
@echo " $(LIBOGG)"
|
||||||
@echo " $(LIBPNG) (requires zlib to be installed)"
|
@echo " $(LIBPNG) (requires zlib to be installed)"
|
||||||
|
@echo " $(LIBXML2)"
|
||||||
|
@echo " $(LIBXMP_LITE)"
|
||||||
|
@echo " $(MBED) (requires zlib to be installed)"
|
||||||
@echo " $(SQLITE)"
|
@echo " $(SQLITE)"
|
||||||
|
@echo " $(TINYXML)"
|
||||||
|
@echo " $(TREMOR) (requires $(LIBOGG) to be installed)"
|
||||||
|
@echo " $(XZ)"
|
||||||
@echo " $(ZLIB)"
|
@echo " $(ZLIB)"
|
||||||
|
|
||||||
|
download: $(BZIP2_SRC) $(FREETYPE_SRC) $(GIFLIB_SRC) $(JANSSON_SRC) $(LIBCONFIG_SRC) $(LIBEXIF_SRC) $(LIBJPEGTURBO_SRC) $(LIBMAD_SRC) $(LIBOGG_SRC) $(LIBPNG_SRC) $(LIBXML2_SRC) $(LIBXMP_LITE_SRC) $(MBED_SRC) $(SQLITE_SRC) $(TINYXML_SRC) $(TREMOR_SRC) $(XZ_SRC) $(ZLIB_SRC)
|
||||||
|
|
||||||
|
DOWNLOAD = wget --no-check-certificate -O "$(1)" "$(2)" || curl -Lo "$(1)" "$(2)"
|
||||||
|
|
||||||
|
$(BZIP2_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(BZIP2_DOWNLOAD))
|
||||||
|
|
||||||
|
$(FREETYPE_SRC):
|
||||||
|
$(call DOWNLOAD,$@,$(FREETYPE_DOWNLOAD))
|
||||||
|
|
||||||
|
$(GIFLIB_SRC):
|
||||||
|
$(call DOWNLOAD,$@,$(GIFLIB_DOWNLOAD))
|
||||||
|
|
||||||
|
$(JANSSON_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(JANSSON_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBCONFIG_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBCONFIG_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBEXIF_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBEXIF_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBJPEGTURBO_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBJPEGTURBO_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBMAD_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBMAD_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBOGG_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBOGG_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBPNG_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBPNG_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBXML2_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBXML2_DOWNLOAD))
|
||||||
|
|
||||||
|
$(LIBXMP_LITE_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(LIBXMP_LITE_DOWNLOAD))
|
||||||
|
|
||||||
|
$(MBED_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(MBED_DOWNLOAD))
|
||||||
|
|
||||||
|
$(SQLITE_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(SQLITE_DOWNLOAD))
|
||||||
|
|
||||||
|
$(TINYXML_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(TINYXML_DOWNLOAD))
|
||||||
|
|
||||||
|
$(TREMOR_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(TREMOR_DOWNLOAD))
|
||||||
|
|
||||||
|
$(XZ_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(XZ_DOWNLOAD))
|
||||||
|
|
||||||
|
$(ZLIB_SRC):
|
||||||
|
@$(call DOWNLOAD,$@,$(ZLIB_DOWNLOAD))
|
||||||
|
|
||||||
|
$(BZIP2): $(BZIP2_SRC)
|
||||||
|
@[ -d $(BZIP2_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(BZIP2_VERSION)
|
||||||
|
@$(MAKE) -C $(BZIP2_VERSION) CC=arm-none-eabi-gcc AR=arm-none-eabi-ar RANLIB=arm-none-eabi-ranlib CPPFLAGS="$(CPPFLAGS)" CFLAGS="-D_FILE_OFFSET_BITS=64 -Winline $(CFLAGS)" libbz2.a
|
||||||
|
|
||||||
$(FREETYPE): $(FREETYPE_SRC)
|
$(FREETYPE): $(FREETYPE_SRC)
|
||||||
@[ -d $(FREETYPE_VERSION) ] || tar -xf $<
|
@[ -d $(FREETYPE_VERSION) ] || tar -xjf $<
|
||||||
@cd $(FREETYPE_VERSION) && \
|
@cd $(FREETYPE_VERSION) && \
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static --without-harfbuzz
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static --without-harfbuzz
|
||||||
@$(MAKE) -C $(FREETYPE_VERSION)
|
@$(MAKE) -C $(FREETYPE_VERSION)
|
||||||
@make create_build_dir
|
|
||||||
@cp -srf $(CURDIR)/$(FREETYPE_VERSION)/include/. $(CURDIR)/build/include
|
$(GIFLIB): $(GIFLIB_SRC)
|
||||||
@cp -sf $(CURDIR)/$(FREETYPE_VERSION)/objs/.libs/libfreetype.a $(CURDIR)/build/lib/libfreetype.a
|
@[ -d $(GIFLIB_VERSION) ] || tar -xjf $<
|
||||||
|
@cd $(GIFLIB_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
|
@$(MAKE) -C $(GIFLIB_VERSION)
|
||||||
|
|
||||||
|
$(JANSSON): $(JANSSON_SRC)
|
||||||
|
@[ -d $(JANSSON_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(JANSSON_VERSION) && \
|
||||||
|
autoreconf -i && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
|
@$(MAKE) -C $(JANSSON_VERSION)
|
||||||
|
|
||||||
|
$(LIBCONFIG): $(LIBCONFIG_SRC)
|
||||||
|
@[ -d $(LIBCONFIG_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(LIBCONFIG_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-cxx --disable-examples
|
||||||
|
@$(MAKE) -C $(LIBCONFIG_VERSION)/lib
|
||||||
|
|
||||||
$(LIBEXIF): $(LIBEXIF_SRC)
|
$(LIBEXIF): $(LIBEXIF_SRC)
|
||||||
@[ -d $(LIBEXIF_VERSION) ] || tar -xf $<
|
@[ -d $(LIBEXIF_VERSION) ] || tar -xjf $<
|
||||||
@cd $(LIBEXIF_VERSION) && \
|
@cd $(LIBEXIF_VERSION) && \
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
@$(MAKE) -C $(LIBEXIF_VERSION)
|
@$(MAKE) -C $(LIBEXIF_VERSION)
|
||||||
|
|
||||||
$(LIBJPEGTURBO): $(LIBJPEGTURBO_SRC)
|
$(LIBJPEGTURBO): $(LIBJPEGTURBO_SRC)
|
||||||
@[ -d $(LIBJPEGTURBO_VERSION) ] || tar -xf $<
|
@[ -d $(LIBJPEGTURBO_VERSION) ] || tar -xzf $<
|
||||||
@cd $(LIBJPEGTURBO_VERSION) && \
|
@cd $(LIBJPEGTURBO_VERSION) && \
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
@$(MAKE) CFLAGS+="\"-Drandom()=rand()\"" -C $(LIBJPEGTURBO_VERSION)
|
@$(MAKE) -C $(LIBJPEGTURBO_VERSION)
|
||||||
@make create_build_dir
|
|
||||||
@cp -sf $(CURDIR)/$(LIBJPEGTURBO_VERSION)/*.h $(CURDIR)/build/include
|
$(LIBMAD): $(LIBMAD_SRC)
|
||||||
@cp -sf $(CURDIR)/$(LIBJPEGTURBO_VERSION)/.libs/libjpeg.a $(CURDIR)/build/lib/libjpeg.a
|
@[ -d $(LIBMAD_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(LIBMAD_VERSION) && \
|
||||||
|
patch -Np1 -i ../libmad-0.15.1b.patch && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
|
@$(MAKE) -C $(LIBMAD_VERSION)
|
||||||
|
|
||||||
|
$(LIBOGG): $(LIBOGG_SRC)
|
||||||
|
@[ -d $(LIBOGG_VERSION) ] || tar -xJf $<
|
||||||
|
@cd $(LIBOGG_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
|
@$(MAKE) -C $(LIBOGG_VERSION)
|
||||||
|
|
||||||
$(LIBPNG): $(LIBPNG_SRC)
|
$(LIBPNG): $(LIBPNG_SRC)
|
||||||
@[ -d $(LIBPNG_VERSION) ] || tar -xf $<
|
@[ -d $(LIBPNG_VERSION) ] || tar -xJf $<
|
||||||
@cd $(LIBPNG_VERSION) && \
|
@cd $(LIBPNG_VERSION) && \
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
@$(MAKE) -C $(LIBPNG_VERSION)
|
@$(MAKE) -C $(LIBPNG_VERSION)
|
||||||
@make create_build_dir
|
|
||||||
@cp -sf $(CURDIR)/$(LIBPNG_VERSION)/*.h $(CURDIR)/build/include
|
$(LIBXML2): $(LIBXML2_SRC)
|
||||||
@cp -sf $(CURDIR)/$(LIBPNG_VERSION)/.libs/*.a $(CURDIR)/build/lib/libpng.a
|
@[ -d $(LIBXML2_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(LIBXML2_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static --without-http --without-ftp --without-threads
|
||||||
|
@$(MAKE) -C $(LIBXML2_VERSION) libxml2.la
|
||||||
|
|
||||||
|
$(LIBXMP_LITE): $(LIBXMP_LITE_SRC)
|
||||||
|
@[ -d $(LIBXMP_LITE_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(LIBXMP_LITE_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static
|
||||||
|
@$(MAKE) -C $(LIBXMP_LITE_VERSION)
|
||||||
|
|
||||||
|
$(MBED): $(MBED_SRC)
|
||||||
|
@[ -d $(MBED_VERSION) ] || tar xzf $<
|
||||||
|
@cd $(MBED_VERSION) && \
|
||||||
|
patch -Np1 -i ../libmbedtls-2.2.1.patch && \
|
||||||
|
cmake -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=$(DEVKITARM)/bin/arm-none-eabi-gcc \
|
||||||
|
-DCMAKE_CXX_COMPILER=$(DEVKITARM)/bin/arm-none-eabi-g++ \
|
||||||
|
-DCMAKE_INSTALL_PREFIX=$(PORTLIBS_PATH)/armv6k -DCMAKE_C_FLAGS="$(CFLAGS)" \
|
||||||
|
-DCMAKE_CXX_FLAGS="$(CFLAGS) -fno-exceptions -fno-rtti" \
|
||||||
|
-DZLIB_ROOT="$(PORTLIBS_PATH)/armv6k" \
|
||||||
|
-DENABLE_ZLIB_SUPPORT=TRUE -DENABLE_TESTING=FALSE -DENABLE_PROGRAMS=FALSE .
|
||||||
|
@$(MAKE) -C $(MBED_VERSION)
|
||||||
|
|
||||||
# sqlite won't work with -ffast-math
|
# sqlite won't work with -ffast-math
|
||||||
$(SQLITE): $(SQLITE_SRC)
|
$(SQLITE): $(SQLITE_SRC)
|
||||||
@[ -d $(SQLITE_VERSION) ] || tar -xf $<
|
@[ -d $(SQLITE_VERSION) ] || tar -xzf $<
|
||||||
@cd $(SQLITE_VERSION) && \
|
@cd $(SQLITE_VERSION) && \
|
||||||
CFLAGS="$(filter-out -ffast-math,$(CFLAGS)) -DSQLITE_OS_OTHER=1" ./configure --disable-shared --disable-threadsafe --disable-dynamic-extensions --host=arm-none-eabi --prefix=$(PORTLIBS)
|
CFLAGS="$(filter-out -ffast-math,$(CFLAGS)) -DSQLITE_OS_OTHER=1" ./configure --disable-shared --disable-threadsafe --disable-dynamic-extensions --host=arm-none-eabi --prefix=$(PORTLIBS_PATH)/armv6k
|
||||||
# avoid building sqlite3 shell
|
# avoid building sqlite3 shell
|
||||||
@$(MAKE) -C $(SQLITE_VERSION) libsqlite3.la
|
@$(MAKE) -C $(SQLITE_VERSION) libsqlite3.la
|
||||||
|
|
||||||
|
# tinyxml2 uses cmake
|
||||||
|
$(TINYXML): $(TINYXML_SRC)
|
||||||
|
@[ -d $(TINYXML_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(TINYXML_VERSION) && cmake -DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=$(DEVKITARM)/bin/arm-none-eabi-gcc -DCMAKE_CXX_COMPILER=$(DEVKITARM)/bin/arm-none-eabi-g++ -DCMAKE_INSTALL_PREFIX=$(PORTLIBS_PATH)/armv6k -DCMAKE_C_FLAGS="$(CFLAGS)" -DCMAKE_CXX_FLAGS="$(CFLAGS) -fno-exceptions -fno-rtti" . && make
|
||||||
|
|
||||||
|
$(TREMOR): $(TREMOR_SRC)
|
||||||
|
@[ -d $(TREMOR_VERSION) ] || tar -xzf $<
|
||||||
|
@cd $(TREMOR_VERSION) && \
|
||||||
|
./autogen.sh --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --disable-oggtest
|
||||||
|
@$(MAKE) -C $(TREMOR_VERSION)
|
||||||
|
|
||||||
|
$(XZ): $(XZ_SRC)
|
||||||
|
@[ -d $(XZ_VERSION) ] || tar -xJf $<
|
||||||
|
@cd $(XZ_VERSION) && \
|
||||||
|
./configure --prefix=$(PORTLIBS_PATH)/armv6k --host=arm-none-eabi --disable-shared --enable-static --disable-xz --enable-threads=no
|
||||||
|
@$(MAKE) -C $(XZ_VERSION)
|
||||||
|
|
||||||
$(ZLIB): $(ZLIB_SRC)
|
$(ZLIB): $(ZLIB_SRC)
|
||||||
@[ -d $(ZLIB_VERSION) ] || tar -xf $<
|
@[ -d $(ZLIB_VERSION) ] || tar -xzf $<
|
||||||
@cd $(ZLIB_VERSION) && \
|
@cd $(ZLIB_VERSION) && \
|
||||||
CHOST=arm-none-eabi ./configure --static --prefix=$(PORTLIBS)
|
CHOST=arm-none-eabi ./configure --static --prefix=$(PORTLIBS_PATH)/armv6k
|
||||||
@$(MAKE) -C $(ZLIB_VERSION)
|
@$(MAKE) -C $(ZLIB_VERSION)
|
||||||
@make create_build_dir
|
|
||||||
@cp -sf $(CURDIR)/$(ZLIB_VERSION)/*.h $(CURDIR)/build/include
|
|
||||||
@cp -sf $(CURDIR)/$(ZLIB_VERSION)/libz.a $(CURDIR)/build/lib/libz.a
|
|
||||||
|
|
||||||
$(LIBOGG): $(LIBOGG_SRC)
|
|
||||||
@[ -d $(LIBOGG_VERSION) ] || tar -xf $<
|
|
||||||
@cd $(LIBOGG_VERSION) && \
|
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static
|
|
||||||
@$(MAKE) -C $(LIBOGG_VERSION)
|
|
||||||
@make create_build_dir
|
|
||||||
@cp -srf $(CURDIR)/$(LIBOGG_VERSION)/include/. $(CURDIR)/build/include
|
|
||||||
@cp -sf $(CURDIR)/$(LIBOGG_VERSION)/src/.libs/*.a $(CURDIR)/build/lib
|
|
||||||
|
|
||||||
$(LIBVORBIS): $(LIBVORBIS_SRC)
|
|
||||||
@[ -d $(LIBVORBIS_VERSION) ] || tar -xf $<
|
|
||||||
@cd $(LIBVORBIS_VERSION) && \
|
|
||||||
./configure --prefix=$(PORTLIBS) --host=arm-none-eabi --disable-shared --enable-static
|
|
||||||
@$(MAKE) -C $(LIBVORBIS_VERSION)
|
|
||||||
@make create_build_dir
|
|
||||||
@cp -srf $(CURDIR)/$(LIBVORBIS_VERSION)/include/. $(CURDIR)/build/include
|
|
||||||
@cp -sf $(CURDIR)/$(LIBVORBIS_VERSION)/lib/.libs/*.a $(CURDIR)/build/lib
|
|
||||||
|
|
||||||
# Downloads
|
|
||||||
$(ZLIB_SRC):
|
|
||||||
wget -O $@ $(ZLIB_DOWNLOAD)
|
|
||||||
|
|
||||||
$(FREETYPE_SRC):
|
|
||||||
wget -O $@ $(FREETYPE_DOWNLOAD)
|
|
||||||
|
|
||||||
$(LIBEXIF_SRC):
|
|
||||||
wget -O $@ $(LIBEXIF_DOWNLOAD)
|
|
||||||
|
|
||||||
$(LIBJPEGTURBO_SRC):
|
|
||||||
wget -O $@ $(LIBJPEGTURBO_DOWNLOAD)
|
|
||||||
|
|
||||||
$(LIBPNG_SRC):
|
|
||||||
wget -O $@ $(LIBPNG_DOWNLOAD)
|
|
||||||
|
|
||||||
$(SQLITE_SRC):
|
|
||||||
wget -O $@ $(SQLITE_DOWNLOAD)
|
|
||||||
|
|
||||||
$(LIBOGG_SRC):
|
|
||||||
wget -O $@ $(LIBOGG_DOWNLOAD)
|
|
||||||
|
|
||||||
$(LIBVORBIS_SRC):
|
|
||||||
wget -O $@ $(LIBVORBIS_DOWNLOAD)
|
|
||||||
|
|
||||||
install-zlib:
|
install-zlib:
|
||||||
@$(MAKE) -C $(ZLIB_VERSION) install
|
@$(MAKE) -C $(ZLIB_VERSION) install
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
@if [ -d $(BZIP2_VERSION) ]; then \
|
||||||
|
cp -fv $(BZIP2_VERSION)/bzlib.h $(PORTLIBS_PATH)/armv6k/include; \
|
||||||
|
chmod a+r $(PORTLIBS_PATH)/armv6k/include/bzlib.h; \
|
||||||
|
cp -fv $(BZIP2_VERSION)/libbz2.a $(PORTLIBS_PATH)/armv6k/lib; \
|
||||||
|
chmod a+r $(PORTLIBS_PATH)/armv6k/lib/libbz2.a; \
|
||||||
|
fi
|
||||||
@[ ! -d $(FREETYPE_VERSION) ] || $(MAKE) -C $(FREETYPE_VERSION) install
|
@[ ! -d $(FREETYPE_VERSION) ] || $(MAKE) -C $(FREETYPE_VERSION) install
|
||||||
|
@[ ! -d $(GIFLIB_VERSION) ] || $(MAKE) -C $(GIFLIB_VERSION) install
|
||||||
|
@[ ! -d $(JANSSON_VERSION) ] || $(MAKE) -C $(JANSSON_VERSION) install
|
||||||
|
@[ ! -d $(LIBCONFIG_VERSION) ] || $(MAKE) -C $(LIBCONFIG_VERSION)/lib install
|
||||||
@[ ! -d $(LIBEXIF_VERSION) ] || $(MAKE) -C $(LIBEXIF_VERSION) install
|
@[ ! -d $(LIBEXIF_VERSION) ] || $(MAKE) -C $(LIBEXIF_VERSION) install
|
||||||
@[ ! -d $(LIBJPEGTURBO_VERSION) ] || $(MAKE) -C $(LIBJPEGTURBO_VERSION) install
|
@[ ! -d $(LIBJPEGTURBO_VERSION) ] || $(MAKE) -C $(LIBJPEGTURBO_VERSION) install
|
||||||
@[ ! -d $(LIBPNG_VERSION) ] || $(MAKE) -C $(LIBPNG_VERSION) install
|
@[ ! -d $(LIBMAD_VERSION) ] || $(MAKE) -C $(LIBMAD_VERSION) install
|
||||||
@[ ! -d $(SQLITE_VERSION) ] || $(MAKE) -C $(SQLITE_VERSION) install-libLTLIBRARIES install-data
|
|
||||||
@[ ! -d $(LIBOGG_VERSION) ] || $(MAKE) -C $(LIBOGG_VERSION) install
|
@[ ! -d $(LIBOGG_VERSION) ] || $(MAKE) -C $(LIBOGG_VERSION) install
|
||||||
@[ ! -d $(LIBVORBIS_VERSION) ] || $(MAKE) -C $(LIBVORBIS_VERSION) install
|
@[ ! -d $(LIBPNG_VERSION) ] || $(MAKE) -C $(LIBPNG_VERSION) install
|
||||||
|
@[ ! -d $(LIBXML2_VERSION) ] || $(MAKE) -C $(LIBXML2_VERSION) install
|
||||||
|
@[ ! -d $(LIBXMP_LITE_VERSION) ] || $(MAKE) -C $(LIBXMP_LITE_VERSION) install
|
||||||
|
@[ ! -d $(MBED_VERSION) ] || $(MAKE) -C $(MBED_VERSION) install
|
||||||
|
@[ ! -d $(SQLITE_VERSION) ] || $(MAKE) -C $(SQLITE_VERSION) install-libLTLIBRARIES install-data
|
||||||
|
@[ ! -d $(TINYXML_VERSION) ] || $(MAKE) -C $(TINYXML_VERSION) install
|
||||||
|
@[ ! -d $(TREMOR_VERSION) ] || $(MAKE) -C $(TREMOR_VERSION) install
|
||||||
|
@[ ! -d $(XZ_VERSION) ] || $(MAKE) -C $(XZ_VERSION) install
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@$(RM) -r $(BZIP2_VERSION)
|
||||||
@$(RM) -r $(FREETYPE_VERSION)
|
@$(RM) -r $(FREETYPE_VERSION)
|
||||||
|
@$(RM) -r $(GIFLIB_VERSION)
|
||||||
|
@$(RM) -r $(JANSSON_VERSION)
|
||||||
|
@$(RM) -r $(LIBCONFIG_VERSION)
|
||||||
@$(RM) -r $(LIBEXIF_VERSION)
|
@$(RM) -r $(LIBEXIF_VERSION)
|
||||||
@$(RM) -r $(LIBJPEGTURBO_VERSION)
|
@$(RM) -r $(LIBJPEGTURBO_VERSION)
|
||||||
@$(RM) -r $(LIBPNG_VERSION)
|
@$(RM) -r $(LIBMAD_VERSION)
|
||||||
@$(RM) -r $(SQLITE_VERSION)
|
|
||||||
@$(RM) -r $(ZLIB_VERSION)
|
|
||||||
@$(RM) -r $(LIBOGG_VERSION)
|
@$(RM) -r $(LIBOGG_VERSION)
|
||||||
@$(RM) -r $(LIBVORBIS_VERSION)
|
@$(RM) -r $(LIBPNG_VERSION)
|
||||||
@rm -rf $(CURDIR)/build
|
@$(RM) -r $(LIBXML2_VERSION)
|
||||||
@rm -f $(CURDIR)/*.tar.*
|
@$(RM) -r $(LIBXMP_LITE_VERSION)
|
||||||
|
@$(RM) -r $(MBED_VERSION)
|
||||||
|
@$(RM) -r $(SQLITE_VERSION)
|
||||||
|
@$(RM) -r $(TINYXML_VERSION)
|
||||||
|
@$(RM) -r $(TREMOR_VERSION)
|
||||||
|
@$(RM) -r $(XZ_VERSION)
|
||||||
|
@$(RM) -r $(ZLIB_VERSION)
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,8 @@
|
||||||
3DS Portlibs
|
3DS Portlibs
|
||||||
============
|
============
|
||||||
|
|
||||||
Here is a Makefile for building various portlibs for 3DS.
|
Here is a Makefile for building various portlibs for 3DS. You need to first
|
||||||
|
build zlib and install it. Then you can build the other portlibs.
|
||||||
Type:
|
|
||||||
|
|
||||||
$ make
|
|
||||||
or:
|
|
||||||
|
|
||||||
$ make all
|
|
||||||
|
|
||||||
to download and install all the libraries at once.
|
|
||||||
|
|
||||||
You can build and install the libraries separately:
|
|
||||||
|
|
||||||
$ make zlib
|
$ make zlib
|
||||||
$ make install-zlib
|
$ make install-zlib
|
||||||
|
|
@ -25,18 +15,42 @@ install` in order for the portlibs to be installed.
|
||||||
|
|
||||||
Currently supports the following portlibs:
|
Currently supports the following portlibs:
|
||||||
|
|
||||||
|
* bzip2
|
||||||
* freetype (requires zlib)
|
* freetype (requires zlib)
|
||||||
|
* giflib
|
||||||
|
* jansson
|
||||||
|
* libconfig
|
||||||
* libexif
|
* libexif
|
||||||
* libjpeg-turbo
|
* libjpeg-turbo
|
||||||
|
* libmad
|
||||||
|
* libogg
|
||||||
* libpng (requires zlib)
|
* libpng (requires zlib)
|
||||||
|
* libxml2
|
||||||
|
* libxmp-lite
|
||||||
|
* mbedtls (requires zlib) (without net component)
|
||||||
* sqlite
|
* sqlite
|
||||||
|
* tinyxml2
|
||||||
|
* tremor (requires libogg)
|
||||||
|
* xz
|
||||||
* zlib
|
* zlib
|
||||||
|
|
||||||
Download links:
|
Download links:
|
||||||
|
|
||||||
* [freetype-2.5.5.tar.bz2] (http://download.savannah.gnu.org/releases/freetype/freetype-2.5.5.tar.bz2)
|
* [bzip2-1.0.6] (http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz)
|
||||||
|
* [freetype-2.6.2.tar.bz2] (http://download.savannah.gnu.org/releases/freetype/freetype-2.6.2.tar.bz2)
|
||||||
|
* [giflib-5.1.1] (http://sourceforge.net/projects/giflib/files/giflib-5.1.1.tar.bz2)
|
||||||
|
* [jansson-v2.7.tar.gz] (https://github.com/akheron/jansson/archive/v2.7.tar.gz)
|
||||||
|
* [libconfig-1.5] (http://www.hyperrealm.com/libconfig/libconfig-1.5.tar.gz)
|
||||||
* [libexif-0.6.21.tar.bz2] (http://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-0.6.21.tar.bz2/download)
|
* [libexif-0.6.21.tar.bz2] (http://sourceforge.net/projects/libexif/files/libexif/0.6.21/libexif-0.6.21.tar.bz2/download)
|
||||||
* [libjpeg-turbo-1.4.0.tar.gz] (http://sourceforge.net/projects/libjpeg-turbo/files/1.4.0/libjpeg-turbo-1.4.0.tar.gz/download)
|
* [libjpeg-turbo-1.4.2.tar.gz] (http://sourceforge.net/projects/libjpeg-turbo/files/1.4.2/libjpeg-turbo-1.4.2.tar.gz/download)
|
||||||
* [libpng-1.6.17.tar.xz] (http://prdownloads.sourceforge.net/libpng/libpng-1.6.17.tar.xz?download)
|
* [libmad-0.15.1b] (http://sourceforge.net/projects/mad/files/libmad/0.15.1b/libmad-0.15.1b.tar.gz)
|
||||||
* [sqlite-autoconf-3081002.tar.gz] (http://www.sqlite.org/2015/sqlite-autoconf-3081002.tar.gz)
|
* [libogg-1.3.2] (http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz)
|
||||||
|
* [libpng-1.6.21.tar.xz] (http://prdownloads.sourceforge.net/libpng/libpng-1.6.21.tar.xz?download)
|
||||||
|
* [libxml2-2.9.3] (http://xmlsoft.org/sources/libxml2-2.9.3.tar.gz)
|
||||||
|
* [libxmp-lite-4.3.10.tar.gz](http://sourceforge.net/projects/xmp/files/libxmp/4.3.10/libxmp-lite-4.3.10.tar.gz/download)
|
||||||
|
* [mbedtls-2.2.1] (https://tls.mbed.org/download/mbedtls-2.2.1-gpl.tgz)
|
||||||
|
* [sqlite-autoconf-3100200.tar.gz] (https://www.sqlite.org/2016/sqlite-autoconf-3100200.tar.gz)
|
||||||
|
* [tinyxml2-3.0.0.tar.gz] (https://github.com/leethomason/tinyxml2/archive/3.0.0.tar.gz)
|
||||||
|
* [tremor-2a1a8f6] (https://git.xiph.org/?p=tremor.git;a=snapshot;h=2a1a8f621e500fdf0749f115e2206f82919560a3;sf=tgz)
|
||||||
|
* [xz-5.2.2] (http://tukaani.org/xz/xz-5.2.2.tar.xz)
|
||||||
* [zlib-1.2.8.tar.gz] (http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz?download)
|
* [zlib-1.2.8.tar.gz] (http://prdownloads.sourceforge.net/libpng/zlib-1.2.8.tar.gz?download)
|
||||||
|
|
|
||||||
11
libs/3ds_portlibs/arm-none-eabi-pkg-config
Executable file
11
libs/3ds_portlibs/arm-none-eabi-pkg-config
Executable file
|
|
@ -0,0 +1,11 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
# reset pkg-config variables to ensure we're not polluted by host libraries
|
||||||
|
|
||||||
|
export PKG_CONFIG_DIR=
|
||||||
|
export PKG_CONFIG_PATH=
|
||||||
|
export PKG_CONFIG_SYSROOT_DIR=
|
||||||
|
|
||||||
|
export PKG_CONFIG_LIBDIR=${DEVKITPRO}/portlibs/3ds/lib/pkgconfig:${DEVKITPRO}/portlibs/armv6k/lib/pkgconfig
|
||||||
|
|
||||||
|
exec pkg-config "$@"
|
||||||
91
libs/3ds_portlibs/libmad-0.15.1b.patch
Normal file
91
libs/3ds_portlibs/libmad-0.15.1b.patch
Normal file
|
|
@ -0,0 +1,91 @@
|
||||||
|
Submitted By: Igor Živković <contact at igor hyphen zivkovic dot from dot hr>
|
||||||
|
Date: 2013-07-04
|
||||||
|
Initial Package Version: 0.15.1b
|
||||||
|
Upstream Status: Reported
|
||||||
|
Origin: Arch Linux packages repository
|
||||||
|
Description: Fixes compilation on x86-64 and optimization issues.
|
||||||
|
|
||||||
|
diff -Naur libmad-0.15.1b.orig/configure.ac libmad-0.15.1b/configure.ac
|
||||||
|
--- libmad-0.15.1b.orig/configure.ac 2004-01-23 10:41:32.000000000 +0100
|
||||||
|
+++ libmad-0.15.1b/configure.ac 2013-07-04 15:55:09.323764417 +0200
|
||||||
|
@@ -124,71 +124,7 @@
|
||||||
|
|
||||||
|
if test "$GCC" = yes
|
||||||
|
then
|
||||||
|
- if test -z "$arch"
|
||||||
|
- then
|
||||||
|
- case "$host" in
|
||||||
|
- i386-*) ;;
|
||||||
|
- i?86-*) arch="-march=i486" ;;
|
||||||
|
- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
|
||||||
|
- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
|
||||||
|
- powerpc-*) ;;
|
||||||
|
- mips*-agenda-*) arch="-mcpu=vr4100" ;;
|
||||||
|
- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
|
||||||
|
- esac
|
||||||
|
- fi
|
||||||
|
-
|
||||||
|
- case "$optimize" in
|
||||||
|
- -O|"-O "*)
|
||||||
|
- optimize="-O"
|
||||||
|
- optimize="$optimize -fforce-mem"
|
||||||
|
- optimize="$optimize -fforce-addr"
|
||||||
|
- : #x optimize="$optimize -finline-functions"
|
||||||
|
- : #- optimize="$optimize -fstrength-reduce"
|
||||||
|
- optimize="$optimize -fthread-jumps"
|
||||||
|
- optimize="$optimize -fcse-follow-jumps"
|
||||||
|
- optimize="$optimize -fcse-skip-blocks"
|
||||||
|
- : #x optimize="$optimize -frerun-cse-after-loop"
|
||||||
|
- : #x optimize="$optimize -frerun-loop-opt"
|
||||||
|
- : #x optimize="$optimize -fgcse"
|
||||||
|
- optimize="$optimize -fexpensive-optimizations"
|
||||||
|
- optimize="$optimize -fregmove"
|
||||||
|
- : #* optimize="$optimize -fdelayed-branch"
|
||||||
|
- : #x optimize="$optimize -fschedule-insns"
|
||||||
|
- optimize="$optimize -fschedule-insns2"
|
||||||
|
- : #? optimize="$optimize -ffunction-sections"
|
||||||
|
- : #? optimize="$optimize -fcaller-saves"
|
||||||
|
- : #> optimize="$optimize -funroll-loops"
|
||||||
|
- : #> optimize="$optimize -funroll-all-loops"
|
||||||
|
- : #x optimize="$optimize -fmove-all-movables"
|
||||||
|
- : #x optimize="$optimize -freduce-all-givs"
|
||||||
|
- : #? optimize="$optimize -fstrict-aliasing"
|
||||||
|
- : #* optimize="$optimize -fstructure-noalias"
|
||||||
|
-
|
||||||
|
- case "$host" in
|
||||||
|
- arm*-*)
|
||||||
|
- optimize="$optimize -fstrength-reduce"
|
||||||
|
- ;;
|
||||||
|
- mips*-*)
|
||||||
|
- optimize="$optimize -fstrength-reduce"
|
||||||
|
- optimize="$optimize -finline-functions"
|
||||||
|
- ;;
|
||||||
|
- i?86-*)
|
||||||
|
- optimize="$optimize -fstrength-reduce"
|
||||||
|
- ;;
|
||||||
|
- powerpc-apple-*)
|
||||||
|
- # this triggers an internal compiler error with gcc2
|
||||||
|
- : #optimize="$optimize -fstrength-reduce"
|
||||||
|
-
|
||||||
|
- # this is really only beneficial with gcc3
|
||||||
|
- : #optimize="$optimize -finline-functions"
|
||||||
|
- ;;
|
||||||
|
- *)
|
||||||
|
- # this sometimes provokes bugs in gcc 2.95.2
|
||||||
|
- : #optimize="$optimize -fstrength-reduce"
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
- ;;
|
||||||
|
- esac
|
||||||
|
+ optimize="-O2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$host" in
|
||||||
|
@@ -297,6 +233,7 @@
|
||||||
|
then
|
||||||
|
case "$host" in
|
||||||
|
i?86-*) FPM="INTEL" ;;
|
||||||
|
+ x86_64*) FPM="64BIT" ;;
|
||||||
|
arm*-*) FPM="ARM" ;;
|
||||||
|
mips*-*) FPM="MIPS" ;;
|
||||||
|
sparc*-*) FPM="SPARC" ;;
|
||||||
12
libs/3ds_portlibs/libmbedtls-2.2.1.patch
Normal file
12
libs/3ds_portlibs/libmbedtls-2.2.1.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
diff -Naur mbedtls-2.2.1/include/mbedtls/config.h mbedtls-2.2.1-mod/include/mbedtls/config.h
|
||||||
|
--- mbedtls-2.2.1/include/mbedtls/config.h 2016-01-04 20:38:18.000000000 -0800
|
||||||
|
+++ mbedtls-2.2.1-mod/include/mbedtls/config.h 2016-05-21 11:43:29.887604004 -0700
|
||||||
|
@@ -1905,7 +1905,7 @@
|
||||||
|
*
|
||||||
|
* This module provides TCP/IP networking routines.
|
||||||
|
*/
|
||||||
|
-#define MBEDTLS_NET_C
|
||||||
|
+//#define MBEDTLS_NET_C
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \def MBEDTLS_OID_C
|
||||||
13
source/ctr.c
13
source/ctr.c
|
|
@ -10,6 +10,7 @@ The `ctr` module.
|
||||||
#include <3ds/services/apt.h>
|
#include <3ds/services/apt.h>
|
||||||
#include <3ds/os.h>
|
#include <3ds/os.h>
|
||||||
#include <3ds/svc.h>
|
#include <3ds/svc.h>
|
||||||
|
#include <3ds/services/hb.h>
|
||||||
|
|
||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
#include <lauxlib.h>
|
#include <lauxlib.h>
|
||||||
|
|
@ -252,6 +253,18 @@ int luaopen_ctr_lib(lua_State *L) {
|
||||||
#endif
|
#endif
|
||||||
lua_pushstring(L, buff);
|
lua_pushstring(L, buff);
|
||||||
lua_setfield(L, -2, "root");
|
lua_setfield(L, -2, "root");
|
||||||
|
|
||||||
|
/***
|
||||||
|
Whether or not ctrµLua has been launched with ninjhax
|
||||||
|
@field hb
|
||||||
|
*/
|
||||||
|
if (!hbInit()) {
|
||||||
|
hbExit();
|
||||||
|
lua_pushboolean(L, true);
|
||||||
|
} else {
|
||||||
|
lua_pushboolean(L, false);
|
||||||
|
}
|
||||||
|
lua_setfield(L, -2, "hb");
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <errno.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
#include <3ds.h>
|
#include <3ds.h>
|
||||||
|
|
||||||
|
|
@ -42,6 +44,13 @@ int main(int argc, char** argv) {
|
||||||
char* mainFile = "main.lua";
|
char* mainFile = "main.lua";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Change root dir
|
||||||
|
#ifdef ROOT
|
||||||
|
if(chdir(ROOT)) {
|
||||||
|
error(strerror(errno));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Init Lua
|
// Init Lua
|
||||||
lua_State *L = luaL_newstate();
|
lua_State *L = luaL_newstate();
|
||||||
if (L == NULL) {
|
if (L == NULL) {
|
||||||
|
|
|
||||||
|
|
@ -306,14 +306,9 @@ void load_thread_lib(lua_State *L) {
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
// Pool lib for accessing the pool from the thread //
|
// Pool lib for accessing the pool from the thread //
|
||||||
// Libception //
|
// Libception //
|
||||||
|
// Documentation is in thread.pool.doc.c, because LDoc //
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
/***
|
|
||||||
The `pool` module. Only accessible from a sub-thread.
|
|
||||||
@module ctr.thread.pool
|
|
||||||
@usage local pool = require("ctr.thread.pool")
|
|
||||||
*/
|
|
||||||
|
|
||||||
static int pool_set(lua_State *L) {
|
static int pool_set(lua_State *L) {
|
||||||
lua_getfield(L, LUA_REGISTRYINDEX, "LThreadSelf");
|
lua_getfield(L, LUA_REGISTRYINDEX, "LThreadSelf");
|
||||||
thread_userdata* thread = (thread_userdata*)lua_tointeger(L, -1);
|
thread_userdata* thread = (thread_userdata*)lua_tointeger(L, -1);
|
||||||
|
|
|
||||||
21
source/thread.pool.h
Normal file
21
source/thread.pool.h
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
// This is a documentation file, not a header. But LDoc.
|
||||||
|
|
||||||
|
/***
|
||||||
|
The `thread.pool` module. Only accessible from a sub-thread.
|
||||||
|
@module ctr.thread.pool
|
||||||
|
@usage local pool = require("ctr.thread.pool")
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***
|
||||||
|
Set a value in the thread's pool.
|
||||||
|
@function set
|
||||||
|
@tparam integer index
|
||||||
|
@param value anything but a table/userdata
|
||||||
|
*/
|
||||||
|
|
||||||
|
/***
|
||||||
|
Get a value from the thread's pool.
|
||||||
|
@function get
|
||||||
|
@tparam integer index
|
||||||
|
@return the value stored
|
||||||
|
*/
|
||||||
15
source/uds.c
15
source/uds.c
|
|
@ -16,6 +16,8 @@ The default wlancommID is 0x637472c2.
|
||||||
#include <lualib.h>
|
#include <lualib.h>
|
||||||
#include <lauxlib.h>
|
#include <lauxlib.h>
|
||||||
|
|
||||||
|
#define DEFAULT_WLANCOMMID 0x637472c2
|
||||||
|
|
||||||
bool initStateUDS = false;
|
bool initStateUDS = false;
|
||||||
|
|
||||||
udsBindContext bind = {0};
|
udsBindContext bind = {0};
|
||||||
|
|
@ -73,11 +75,16 @@ Scan for network beacons.
|
||||||
static int uds_scan(lua_State *L) {
|
static int uds_scan(lua_State *L) {
|
||||||
static const size_t tmpbuffSize = 0x4000;
|
static const size_t tmpbuffSize = 0x4000;
|
||||||
u32* tmpbuff = malloc(tmpbuffSize);
|
u32* tmpbuff = malloc(tmpbuffSize);
|
||||||
|
if (tmpbuff == NULL) {
|
||||||
|
lua_pushnil(L);
|
||||||
|
lua_pushstring(L, "Failed to allocated beacon data buffer");
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
udsNetworkScanInfo* networks = NULL;
|
udsNetworkScanInfo* networks = NULL;
|
||||||
size_t totalNetworks = 0;
|
size_t totalNetworks = 0;
|
||||||
|
|
||||||
u32 wlanCommID = luaL_optinteger(L, 1, 0x637472c2);
|
u32 wlanCommID = luaL_optinteger(L, 1, DEFAULT_WLANCOMMID);
|
||||||
u8 id8 = luaL_optinteger(L, 2, 0);
|
u8 id8 = luaL_optinteger(L, 2, 0);
|
||||||
|
|
||||||
// MAC address conversion
|
// MAC address conversion
|
||||||
|
|
@ -117,7 +124,7 @@ static int uds_scan(lua_State *L) {
|
||||||
udsNetworkScanInfo* beacon = lua_newuserdata(L, sizeof(udsNetworkScanInfo));
|
udsNetworkScanInfo* beacon = lua_newuserdata(L, sizeof(udsNetworkScanInfo));
|
||||||
luaL_getmetatable(L, "LUDSBeaconScan");
|
luaL_getmetatable(L, "LUDSBeaconScan");
|
||||||
lua_setmetatable(L, -2);
|
lua_setmetatable(L, -2);
|
||||||
memcpy(beacon, &networks[0], sizeof(udsNetworkScanInfo));
|
memcpy(beacon, &networks[i-1], sizeof(udsNetworkScanInfo));
|
||||||
lua_seti(L, -3, i);
|
lua_seti(L, -3, i);
|
||||||
}
|
}
|
||||||
free(networks);
|
free(networks);
|
||||||
|
|
@ -294,12 +301,12 @@ static int uds_createNetwork(lua_State *L) {
|
||||||
size_t passSize = 0;
|
size_t passSize = 0;
|
||||||
const char *pass = luaL_optlstring(L, 1, "", &passSize);
|
const char *pass = luaL_optlstring(L, 1, "", &passSize);
|
||||||
u8 maxNodes = luaL_optinteger(L, 2, UDS_MAXNODES);
|
u8 maxNodes = luaL_optinteger(L, 2, UDS_MAXNODES);
|
||||||
u32 commID = luaL_optinteger(L, 3, 0x637472c2);
|
u32 commID = luaL_optinteger(L, 3, DEFAULT_WLANCOMMID);
|
||||||
u32 recvBuffSize = luaL_optinteger(L, 4, UDS_DEFAULT_RECVBUFSIZE);
|
u32 recvBuffSize = luaL_optinteger(L, 4, UDS_DEFAULT_RECVBUFSIZE);
|
||||||
u8 dataChannel = luaL_optinteger(L, 5, 1);
|
u8 dataChannel = luaL_optinteger(L, 5, 1);
|
||||||
|
|
||||||
udsGenerateDefaultNetworkStruct(&network, commID, dataChannel, maxNodes);
|
udsGenerateDefaultNetworkStruct(&network, commID, dataChannel, maxNodes);
|
||||||
Result ret = udsCreateNetwork(&network, pass, passSize, &bind, dataChannel, recvBuffSize);
|
Result ret = udsCreateNetwork(&network, pass, passSize+1, &bind, dataChannel, recvBuffSize);
|
||||||
if (R_FAILED(ret)) {
|
if (R_FAILED(ret)) {
|
||||||
lua_pushboolean(L, false);
|
lua_pushboolean(L, false);
|
||||||
lua_pushinteger(L, ret);
|
lua_pushinteger(L, ret);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue