From 75e5a9e637d37afb6df85b5bbff463f8849d01cb Mon Sep 17 00:00:00 2001 From: Lorenzo Delgado Date: Wed, 15 Jan 2025 00:13:24 +0100 Subject: [PATCH] chore(build): add meson.build file Signed-off-by: Lorenzo Delgado --- meson.build | 3 + nx/meson.build | 231 +++++++++++++++++++++++++++++++++++++ nx/source/services/usbds.c | 2 +- 3 files changed, 235 insertions(+), 1 deletion(-) create mode 100644 meson.build create mode 100644 nx/meson.build diff --git a/meson.build b/meson.build new file mode 100644 index 00000000..08ac5232 --- /dev/null +++ b/meson.build @@ -0,0 +1,3 @@ +project('nx', 'c', version : '4.7.0') + +subdir('nx') \ No newline at end of file diff --git a/nx/meson.build b/nx/meson.build new file mode 100644 index 00000000..3620c435 --- /dev/null +++ b/nx/meson.build @@ -0,0 +1,231 @@ +## Source files +c_src = files( + 'source/applets/album_la.c', + 'source/applets/error.c', + 'source/applets/friends_la.c', + 'source/applets/hid_la.c', + 'source/applets/libapplet.c', + 'source/applets/mii_la.c', + 'source/applets/nfp_la.c', + 'source/applets/nifm_la.c', + 'source/applets/pctlauth.c', + 'source/applets/psel.c', + 'source/applets/swkbd.c', + 'source/applets/web.c', + 'source/audio/driver.c', + 'source/audio/mempool.c', + 'source/audio/mix_object.c', + 'source/audio/sink.c', + 'source/audio/voice.c', + 'source/crypto/aes.c', + 'source/crypto/aes_cbc.c', + 'source/crypto/aes_ctr.c', + 'source/crypto/aes_xts.c', + 'source/crypto/cmac.c', + 'source/crypto/hmac.c', + 'source/crypto/sha1.c', + 'source/crypto/sha256.c', + 'source/display/binder.c', + 'source/display/buffer_producer.c', + 'source/display/default_window.c', + 'source/display/framebuffer.c', + 'source/display/native_window.c', + 'source/display/parcel.c', + 'source/kernel/barrier.c', + 'source/kernel/condvar.c', + 'source/kernel/event.c', + 'source/kernel/jit.c', + 'source/kernel/levent.c', + 'source/kernel/mutex.c', + 'source/kernel/random.c', + 'source/kernel/rwlock.c', + 'source/kernel/semaphore.c', + 'source/kernel/shmem.c', + 'source/kernel/thread.c', + 'source/kernel/tmem.c', + 'source/kernel/uevent.c', + 'source/kernel/utimer.c', + 'source/kernel/virtmem.c', + 'source/kernel/wait.c', + 'source/nvidia/address_space.c', + 'source/nvidia/channel.c', + 'source/nvidia/fence.c', + 'source/nvidia/gpu.c', + 'source/nvidia/gpu_channel.c', + 'source/nvidia/ioctl/nvchannel.c', + 'source/nvidia/ioctl/nvhost-as-gpu.c', + 'source/nvidia/ioctl/nvhost-ctrl.c', + 'source/nvidia/ioctl/nvhost-ctrl-gpu.c', + 'source/nvidia/ioctl/nvmap.c', + 'source/nvidia/map.c', + 'source/runtime/alloc.c', + 'source/runtime/argv.c', + 'source/runtime/btdev.c', + 'source/runtime/devices/console.c', + 'source/runtime/devices/console_debug.c', + 'source/runtime/devices/console_sw.c', + 'source/runtime/devices/convert_errno.c', + 'source/runtime/devices/fs_dev.c', + 'source/runtime/devices/path_buf.c', + 'source/runtime/devices/romfs_dev.c', + 'source/runtime/devices/socket.c', + 'source/runtime/devices/usb_comms.c', + 'source/runtime/diag.c', + 'source/runtime/dynamic.c', + 'source/runtime/env.c', + 'source/runtime/hosversion.c', + 'source/runtime/init.c', + 'source/runtime/nacp.c', + 'source/runtime/newlib.c', + 'source/runtime/nxlink.c', + 'source/runtime/nxlink_stdio.c', + 'source/runtime/pad.c', + 'source/runtime/resolver.c', + 'source/runtime/ringcon.c', + 'source/runtime/util/inet_addr.c', + 'source/runtime/util/utf/decode_utf16.c', + 'source/runtime/util/utf/decode_utf8.c', + 'source/runtime/util/utf/encode_utf16.c', + 'source/runtime/util/utf/encode_utf8.c', + 'source/runtime/util/utf/utf16_to_utf32.c', + 'source/runtime/util/utf/utf16_to_utf8.c', + 'source/runtime/util/utf/utf32_to_utf16.c', + 'source/runtime/util/utf/utf32_to_utf8.c', + 'source/runtime/util/utf/utf8_to_utf16.c', + 'source/runtime/util/utf/utf8_to_utf32.c', + 'source/services/acc.c', + 'source/services/apm.c', + 'source/services/applet.c', + 'source/services/async.c', + 'source/services/audctl.c', + 'source/services/auddev.c', + 'source/services/audin.c', + 'source/services/audout.c', + 'source/services/audrec.c', + 'source/services/audren.c', + 'source/services/avm.c', + 'source/services/bpc.c', + 'source/services/bsd.c', + 'source/services/bt.c', + 'source/services/btdrv.c', + 'source/services/btm.c', + 'source/services/btmsys.c', + 'source/services/btmu.c', + 'source/services/capmtp.c', + 'source/services/capsa.c', + 'source/services/caps.c', + 'source/services/capsc.c', + 'source/services/capsdc.c', + 'source/services/capssc.c', + 'source/services/capssu.c', + 'source/services/capsu.c', + 'source/services/clkrst.c', + 'source/services/csrng.c', + 'source/services/ectx.c', + 'source/services/fan.c', + 'source/services/fatal.c', + 'source/services/friends.c', + 'source/services/fs.c', + 'source/services/fsldr.c', + 'source/services/fspr.c', + 'source/services/gpio.c', + 'source/services/grc.c', + 'source/services/hidbus.c', + 'source/services/hid.c', + 'source/services/hiddbg.c', + 'source/services/hidsys.c', + 'source/services/htcs.c', + 'source/services/hwopus.c', + 'source/services/i2c.c', + 'source/services/ins.c', + 'source/services/irs.c', + 'source/services/lbl.c', + 'source/services/ldn.c', + 'source/services/ldr.c', + 'source/services/lp2p.c', + 'source/services/lr.c', + 'source/services/mii.c', + 'source/services/miiimg.c', + 'source/services/mm.c', + 'source/services/ncm.c', + 'source/services/news.c', + 'source/services/nfc.c', + 'source/services/nifm.c', + 'source/services/nim.c', + 'source/services/notif.c', + 'source/services/ns.c', + 'source/services/nv.c', + 'source/services/pctl.c', + 'source/services/pcv.c', + 'source/services/pdm.c', + 'source/services/pgl.c', + 'source/services/pl.c', + 'source/services/pm.c', + 'source/services/psc.c', + 'source/services/psm.c', + 'source/services/ro.c', + 'source/services/set.c', + 'source/services/sfdnsres.c', + 'source/services/sm.c', + 'source/services/smm.c', + 'source/services/spl.c', + 'source/services/spsm.c', + 'source/services/ssl.c', + 'source/services/tc.c', + 'source/services/time.c', + 'source/services/ts.c', + 'source/services/uart.c', + 'source/services/usbds.c', + 'source/services/usbhs.c', + 'source/services/vi.c', + 'source/services/wlaninf.c', + 'source/sf/sessionmgr.c', +) +s_src = files( + 'source/arm/cache.s', + 'source/kernel/svc.s', + 'source/runtime/exception.s', + 'source/runtime/readtp.s', + 'source/runtime/switch_crt0.s', +) +inc = include_directories( + 'include', + 'external/bsd/include', +) + +# Data files +data_default_font = 'data/default_font.bin' + +# Preprocess data files +bin2s = find_program('bin2s', required : true) +bin2s_gen = generator(bin2s, + output : ['@BASENAME@_bin.s', '@BASENAME@_bin.h'], + arguments : ['-a', '8', '-H', '@BUILD_DIR@/@BASENAME@_bin.h', '@INPUT@'], + capture : true, +) + +data_default_font_src = bin2s_gen.process(data_default_font) + + +## Static library +# Compiler options +arch_opts = ['-march=armv8-a+crc+crypto', '-mtune=cortex-a57', '-mtp=soft', '-fPIC', '-ftls-model=local-exec'] +c_opts = ['-g', '-Wall', '-Werror', '-ffunction-sections', '-fdata-sections'] + arch_opts +c_opts += ['-D__SWITCH__', '-DLIBNX_NO_DEPRECATION'] +cpp_opts = ['-fno-rtti', '-fno-exceptions', '-std=gnu++11'] + +nx = static_library('nx', + [c_src, s_src, data_default_font_src], + include_directories : include_directories( + 'include/switch', + 'external/bsd/include', + ), + c_args : c_opts, + cpp_args : cpp_opts, +) + +nx_dep = declare_dependency( + include_directories : inc, + link_with : nx +) +nx_switch_specs = meson.current_source_dir() / 'switch.specs' \ No newline at end of file diff --git a/nx/source/services/usbds.c b/nx/source/services/usbds.c index cc67e846..d4d409d9 100644 --- a/nx/source/services/usbds.c +++ b/nx/source/services/usbds.c @@ -1,10 +1,10 @@ #include "service_guard.h" #include #include "arm/cache.h" +#include "arm/counter.h" #include "services/usbds.h" #include "runtime/hosversion.h" #include "runtime/util/utf.h" -#include "switch/arm/counter.h" #define TOTAL_INTERFACES 4 #define TOTAL_ENDPOINTS_IN 16