############################################################################ # binfmt/Makefile # # SPDX-License-Identifier: Apache-2.0 # # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. The # ASF licenses this file to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance with the # License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # ############################################################################ # Basic BINFMT source files CSRCS = binfmt_globals.c binfmt_initialize.c binfmt_register.c binfmt_unregister.c CSRCS += binfmt_loadmodule.c binfmt_unloadmodule.c binfmt_execmodule.c CSRCS += binfmt_exec.c binfmt_copyargv.c binfmt_copyactions.c binfmt_dumpmodule.c ifeq ($(CONFIG_BINFMT_LOADABLE),y) CSRCS += binfmt_exit.c endif ifeq ($(CONFIG_LIBC_EXECFUNCS),y) CSRCS += binfmt_execsymtab.c endif # Builtin application interfaces ifeq ($(CONFIG_BUILTIN),y) CSRCS += builtin.c endif # ELF application interfaces ifeq ($(CONFIG_ELF),y) CSRCS += elf.c endif # NXFLAT application interfaces ifeq ($(CONFIG_NXFLAT),y) CSRCS += nxflat.c endif # Add configured binary modules ifeq ($(CONFIG_NXFLAT),y) VPATH += libnxflat include libnxflat/Make.defs endif CFLAGS += -I ${NXBASE}/sched AOBJS = $(ASRCS:.S=.o) AOBJS := $(addprefix ${NXOUT}/, $(AOBJS)) COBJS = $(CSRCS:.c=.o) COBJS := $(addprefix ${NXOUT}/, $(COBJS)) SRCS = $(ASRCS) $(CSRCS) OBJS = $(AOBJS) $(COBJS) BIN = libbinfmt.a $(AOBJS): ${NXOUT}/%.o: %.S $(call ASSEMBLE, $<, $@) $(COBJS): ${NXOUT}/%.o: %.c $(call COMPILE, $<, $@) $(BIN): $(OBJS) $(call ARCHIVE, ${NXOUT}/$@, $^) symlink: $(call LINK, ${ARCH_DIR}/include, ${NXBASE}/include/arch) $(call LINK, ${NXBASE}/soc/arm/include/${ARCH_CHIP}, ${NXBASE}/include/chip) $(call LINK, ${NXOUT}/config.h, ${NXBASE}/include/nuttx/config.h) unlink: $(call UNLINK, ${NXBASE}/include/arch) $(call UNLINK, ${NXBASE}/include/chip) $(call UNLINK, ${NXBASE}/include/nuttx/config.h) .PHONY: symlink unlink all .IGNORE: $(BIN) all: symlink $(BIN) unlink