mirror of
				https://github.com/Atmosphere-NX/Atmosphere.git
				synced 2025-10-28 18:05:48 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| #---------------------------------------------------------------------------------
 | |
| # pull in common atmosphere configuration
 | |
| #---------------------------------------------------------------------------------
 | |
| include  $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/../common.mk
 | |
| 
 | |
| ifeq ($(ATMOSPHERE_BOARD),nx-hac-001)
 | |
| 
 | |
| #---------------------------------------------------------------------------------
 | |
| # pull in switch rules
 | |
| #---------------------------------------------------------------------------------
 | |
| ifeq ($(strip $(DEVKITPRO)),)
 | |
| $(error "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to>/devkitpro")
 | |
| endif
 | |
| 
 | |
| include $(DEVKITPRO)/libnx/switch_rules
 | |
| 
 | |
| endif
 | |
| 
 | |
| #---------------------------------------------------------------------------------
 | |
| # options for code generation
 | |
| #---------------------------------------------------------------------------------
 | |
| ifeq ($(ATMOSPHERE_BUILD_FOR_DEBUGGING),1)
 | |
| ATMOSPHERE_OPTIMIZATION_FLAG := -Os
 | |
| else
 | |
| ATMOSPHERE_OPTIMIZATION_FLAG := -O2
 | |
| endif
 | |
| 
 | |
| export DEFINES     = $(ATMOSPHERE_DEFINES) -DATMOSPHERE_IS_STRATOSPHERE -D_GNU_SOURCE
 | |
| export SETTINGS    = $(ATMOSPHERE_SETTINGS) $(ATMOSPHERE_OPTIMIZATION_FLAG) -Wextra -Werror -Wno-missing-field-initializers
 | |
| export CFLAGS      = $(ATMOSPHERE_CFLAGS) $(SETTINGS) $(DEFINES) $(INCLUDE)
 | |
| export CXXFLAGS    = $(CFLAGS) $(ATMOSPHERE_CXXFLAGS)
 | |
| export ASFLAGS     = $(ATMOSPHERE_ASFLAGS) $(SETTINGS) $(DEFINES)
 | |
| 
 | |
| ifeq ($(ATMOSPHERE_BOARD),nx-hac-001)
 | |
| export CXXREQUIRED := -Wl,--require-defined,__libnx_initheap \
 | |
|                       -Wl,--require-defined,__libnx_exception_handler \
 | |
|                       -Wl,--require-defined,__libnx_alloc \
 | |
|                       -Wl,--require-defined,__libnx_aligned_alloc \
 | |
|                       -Wl,--require-defined,__libnx_free \
 | |
|                       -Wl,--require-defined,__appInit \
 | |
|                       -Wl,--require-defined,__appExit \
 | |
|                       -Wl,--require-defined,argvSetup
 | |
| 
 | |
| export CXXWRAPS := -Wl,--wrap,__cxa_pure_virtual \
 | |
| 			-Wl,--wrap,__cxa_throw \
 | |
| 			-Wl,--wrap,__cxa_rethrow \
 | |
| 			-Wl,--wrap,__cxa_allocate_exception \
 | |
| 			-Wl,--wrap,__cxa_free_exception \
 | |
| 			-Wl,--wrap,__cxa_begin_catch \
 | |
| 			-Wl,--wrap,__cxa_end_catch \
 | |
| 			-Wl,--wrap,__cxa_call_unexpected \
 | |
| 			-Wl,--wrap,__cxa_call_terminate \
 | |
| 			-Wl,--wrap,__gxx_personality_v0 \
 | |
| 			-Wl,--wrap,_Unwind_Resume \
 | |
| 			-Wl,--wrap,_ZSt19__throw_logic_errorPKc \
 | |
| 			-Wl,--wrap,_ZSt20__throw_length_errorPKc \
 | |
| 			-Wl,--wrap,_ZNSt11logic_errorC2EPKc \
 | |
| 			-Wl,--wrap,exit
 | |
| else ifeq ($(ATMOSPHERE_BOARD),generic_windows)
 | |
| export CXXREQUIRED :=
 | |
| export CXXWRAPS    := -Wl,--wrap,__p__acmdln
 | |
| else
 | |
| export CXXREQUIRED :=
 | |
| export CXXWRAPS    :=
 | |
| endif
 | |
| 
 | |
| 
 | |
| ifeq ($(ATMOSPHERE_BOARD),nx-hac-001)
 | |
| export LDFLAGS     = -specs=$(ATMOSPHERE_LIBRARIES_DIR)/libstratosphere/stratosphere.specs -specs=$(DEVKITPRO)/libnx/switch.specs $(CXXFLAGS) $(CXXWRAPS) $(CXXREQUIRED) -Wl,-Map,$(notdir $*.map)
 | |
| else ifeq ($(ATMOSPHERE_OS_NAME),macos)
 | |
| export LDFLAGS     = $(CXXFLAGS) $(CXXWRAPS) $(CXXREQUIRED) -Wl,-map,$(notdir $@.map)
 | |
| else
 | |
| export LDFLAGS     = $(CXXFLAGS) $(CXXWRAPS) $(CXXREQUIRED) -Wl,-Map,$(notdir $@.map)
 | |
| endif
 | |
| 
 | |
| ifeq ($(ATMOSPHERE_COMPILER_NAME),clang)
 | |
| export LDFLAGS += -fuse-ld=lld
 | |
| endif
 | |
| 
 | |
| ifeq ($(ATMOSPHERE_BOARD),nx-hac-001)
 | |
| export LIBS	:= -lstratosphere -lnx
 | |
| else ifeq ($(ATMOSPHERE_BOARD),generic_windows)
 | |
| export LIBS	:= -lstratosphere -lwinmm -lws2_32 -lbcrypt -static -static-libgcc -static-libstdc++
 | |
| else ifeq ($(ATMOSPHERE_BOARD),generic_linux)
 | |
| export LIBS := -lstratosphere -pthread -lbfd
 | |
| else ifeq ($(ATMOSPHERE_BOARD),generic_macos)
 | |
| export LIBS := -lstratosphere -pthread
 | |
| else
 | |
| export LIBS := -lstratosphere
 | |
| endif
 | |
| 
 | |
| #---------------------------------------------------------------------------------
 | |
| # list of directories containing libraries, this must be the top level containing
 | |
| # include and lib
 | |
| #---------------------------------------------------------------------------------
 | |
| ifeq ($(ATMOSPHERE_BOARD),nx-hac-001)
 | |
| export LIBDIRS	= $(PORTLIBS) $(LIBNX)
 | |
| else
 | |
| export LIBDIRS	=
 | |
| endif
 | |
| 
 | |
| export AMS_LIBDIRS = $(ATMOSPHERE_LIBRARIES_DIR)/libvapours $(ATMOSPHERE_LIBRARIES_DIR)/libstratosphere
 | |
| 
 | |
| #---------------------------------------------------------------------------------
 | |
| # stratosphere sysmodules may (but usually do not) have an exefs source dir
 | |
| #---------------------------------------------------------------------------------
 | |
| export EXEFS_SRC = exefs_src
 |