mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 01:05:54 +08:00
Flesh out examples/nxflat build environment
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1921 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
+20
-20
@@ -1,7 +1,7 @@
|
||||
/************************************************************
|
||||
* null_main.c
|
||||
/****************************************************************************
|
||||
* examples/null/null_main.c
|
||||
*
|
||||
* Copyright (C) 2007 Gregory Nutt. All rights reserved.
|
||||
* Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@@ -31,43 +31,43 @@
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Private Types
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Name: user_initialize
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
void user_initialize(void)
|
||||
{
|
||||
}
|
||||
|
||||
/************************************************************
|
||||
/****************************************************************************
|
||||
* Name: user_start
|
||||
************************************************************/
|
||||
****************************************************************************/
|
||||
|
||||
int user_start(int argc, char *argv[])
|
||||
{
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
ASRCS =
|
||||
AOBJS = $(ASRCS:.S=$(OBJEXT))
|
||||
CSRCS =
|
||||
CSRCS = nxflat_main.c
|
||||
COBJS = $(CSRCS:.c=$(OBJEXT))
|
||||
|
||||
SRCS = $(ASRCS) $(CSRCS)
|
||||
@@ -47,6 +47,7 @@ OBJS = $(AOBJS) $(COBJS)
|
||||
BIN = lib$(CONFIG_EXAMPLE)$(LIBEXT)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: tests/romfs.h tests/dirlist.h clean distclean
|
||||
|
||||
$(AOBJS): %$(OBJEXT): %.S
|
||||
$(call ASSEMBLE, $<, $@)
|
||||
@@ -54,7 +55,10 @@ $(AOBJS): %$(OBJEXT): %.S
|
||||
$(COBJS): %$(OBJEXT): %.c
|
||||
$(call COMPILE, $<, $@)
|
||||
|
||||
$(BIN): $(OBJS)
|
||||
headers:
|
||||
@$(MAKE) -C tests TOPDIR=$(TOPDIR) CROSSDEV=$(CROSSDEV)
|
||||
|
||||
$(BIN): headers $(OBJS)
|
||||
@( for obj in $(OBJS) ; do \
|
||||
$(call ARCHIVE, $@, $${obj}); \
|
||||
done ; )
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
/****************************************************************************
|
||||
* examples/nxflat/nxflat_main.c
|
||||
*
|
||||
* Copyright (C) 2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Included Files
|
||||
****************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <debug.h>
|
||||
|
||||
#include "tests/romfs.h"
|
||||
#include "tests/dirlist.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Types
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Name: user_initialize
|
||||
****************************************************************************/
|
||||
|
||||
void user_initialize(void)
|
||||
{
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: user_start
|
||||
****************************************************************************/
|
||||
|
||||
int user_start(int argc, char *argv[])
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
############################################################################
|
||||
# examples/nxflat/Make.defs
|
||||
#
|
||||
# Copyright (C) 2009 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
# modification, are permitted provided that the following conditions
|
||||
# are met:
|
||||
#
|
||||
# 1. Redistributions of source code must retain the above copyright
|
||||
# notice, this list of conditions and the following disclaimer.
|
||||
# 2. Redistributions in binary form must reproduce the above copyright
|
||||
# notice, this list of conditions and the following disclaimer in
|
||||
# the documentation and/or other materials provided with the
|
||||
# distribution.
|
||||
# 3. Neither the name NuttX nor the names of its contributors may be
|
||||
# used to endorse or promote products derived from this software
|
||||
# without specific prior written permission.
|
||||
#
|
||||
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
# POSSIBILITY OF SUCH DAMAGE.
|
||||
#
|
||||
############################################################################
|
||||
|
||||
NXFLATCC = $(CC)
|
||||
NXFLATCFLAGS = $(CPICFLAGS)
|
||||
NXFLATCXX = $(CXX)
|
||||
NXFLATCXXFLAGS = $(CXXPICFLAGS)
|
||||
|
||||
NXFLATLD = $(LD)
|
||||
NXFLATLDFLAGS1 = -r -d -warn-common
|
||||
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T $(TOPDIR)/examples/nxflat/tests/nxflat.ld -no-check-sections
|
||||
|
||||
LDNXFLATFLAGS = -e main -s 2048
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = errno
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN1 = hello++1
|
||||
BIN2 = hello++2
|
||||
@@ -74,16 +73,18 @@ LIBSTDC_STUBS_LIB = $(LIBSTDC_STUBS_DIR)/liblibxx.a
|
||||
all: $(BIN1) $(BIN2) $(BIN3) # $(BIN4)
|
||||
|
||||
$(R1CXXOBJS): %.o: %.cpp
|
||||
$(NXFLATCXX) -c $(NXFLATCXXFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CXX) -c $(CXXPICFLAGS) $< -o $@
|
||||
|
||||
$(R2AOBJS): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
# This contains libstdc++ stubs to that you can build C++ code
|
||||
# without actually having libstdc++
|
||||
|
||||
$(LIBSTDC_STUBS_LIB):
|
||||
$(MAKE) -C $(LIBSTDC_STUBS_DIR) TOPDIR=$(TOPDIR)
|
||||
@$(MAKE) -C $(LIBSTDC_STUBS_DIR) TOPDIR=$(TOPDIR)
|
||||
|
||||
# BIN1 and BIN2 link just like C code because they contain no
|
||||
# static constructors. BIN1 is equivalent to a C hello world;
|
||||
@@ -91,28 +92,35 @@ $(LIBSTDC_STUBS_LIB):
|
||||
# not statically initialized.
|
||||
|
||||
$(BIN1).r1: $(R1OBJS1)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC1): $(BIN1).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN1).r2: $(R2OBJ1)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS1) $(R2OBJ1)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS1) $(R2OBJ1)
|
||||
|
||||
$(BIN1): $(BIN1).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
$(BIN2).r1: $(R1OBJS2) $(LIBSTDC_STUBS_LIB)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC2): $(BIN2).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN2).r2: $(R2OBJ2)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS2) $(R2OBJ2)
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS2) $(R2OBJ2)
|
||||
|
||||
(BIN2): $(BIN2).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
$(BIN2): $(BIN2).r2
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
# BIN3 and BIN4 require that we include --cxx in the xflat-ld command.
|
||||
# This will instruct xflat-ld that we want it to put togethe the correct
|
||||
@@ -121,41 +129,48 @@ $(BIN2).r2: $(R2OBJ2)
|
||||
# BIN3 is equivalent to BIN2 except that is uses static initializers
|
||||
|
||||
$(BIN3).r1: $(R1OBJS3) $(LIBSTDC_STUBS_LIB)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC3): $(BIN3).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN3).r2: $(R2OBJ3)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS3) $(R2OBJ3)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS3) $(R2OBJ3)
|
||||
|
||||
$(BIN3): $(BIN3).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
# BIN4 is similar to BIN3 except that it uses the streams code from libstdc++
|
||||
#
|
||||
# NOTE: libstdc++ is not available for XFLAT as of this writing
|
||||
#
|
||||
#$(BIN4).r1: $(R1OBJS4) $(LIBSTDC_STUBS_LIB)
|
||||
# $(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
# @echo "LD: $<"
|
||||
# $(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
#
|
||||
#$(R2SRC4): $(BIN4).r1
|
||||
# @echo "MK: $<"
|
||||
# $(MKNXFLAT) -o $@ $^
|
||||
#
|
||||
#$(BIN4).r2: $(R2OBJ4)
|
||||
# $(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS4) $(R2OBJ4)
|
||||
#$(BIN4).r2: $(R2OBJ4)# @echo "LD: $<"
|
||||
# $(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS4) $(R2OBJ4)
|
||||
#
|
||||
#$(BIN4): $(BIN4).r2
|
||||
# @echo "LD: $<"
|
||||
# $(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(ALL_BIN) $(DERIVED) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(ALL_BIN) $(DERIVED) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install: $(ALL_BIN)
|
||||
install -D $(BIN1) $(ROMFS_DIR)/$(BIN1)
|
||||
install -D $(BIN2) $(ROMFS_DIR)/$(BIN2)
|
||||
install -D $(BIN3) $(ROMFS_DIR)/$(BIN3)
|
||||
# install -D $(BIN4) $(ROMFS_DIR)/$(BIN4)
|
||||
@install -D $(BIN1) $(ROMFS_DIR)/$(BIN1)
|
||||
@install -D $(BIN2) $(ROMFS_DIR)/$(BIN2)
|
||||
@install -D $(BIN3) $(ROMFS_DIR)/$(BIN3)
|
||||
# @install -D $(BIN4) $(ROMFS_DIR)/$(BIN4)
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = hello
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = longjmp
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = mutex
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -1,172 +0,0 @@
|
||||
/****************************************************************************
|
||||
* examples/nxflat/nxflat.ld
|
||||
*
|
||||
* Copyright (C) 2009 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
MEMORY
|
||||
{
|
||||
ISPACE : ORIGIN = 0x0, LENGTH = 2097152
|
||||
DSPACE : ORIGIN = 0x0, LENGTH = 2097152
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* The XFLAT program image is divided into two segments:
|
||||
*
|
||||
* (1) ISpace (Instruction Space). This is the segment that contains
|
||||
* code (.text). Everything in the segment should be fetch-able
|
||||
* machine PC instructions (jump, branch, call, etc.).
|
||||
* (2) DSpace (Data Space). This is the segment that contains both
|
||||
* read-write data (.data, .bss) as well as read-only data (.rodata).
|
||||
* Everything in this segment should be access-able with machine
|
||||
* with machine load and store instructions.
|
||||
****************************************************************************/
|
||||
|
||||
SECTIONS
|
||||
{
|
||||
.text 0x00000000 :
|
||||
{
|
||||
/* ISpace is located at address 0. Every (unrelocated) ISpace
|
||||
* address is an offset from the begining of this segment.
|
||||
*/
|
||||
|
||||
text_start = . ;
|
||||
|
||||
*(.text)
|
||||
*(.text.*)
|
||||
*(.gnu.warning)
|
||||
*(.stub)
|
||||
*(.glue_7)
|
||||
*(.glue_7t)
|
||||
*(.jcr)
|
||||
|
||||
/* C++ support: The .init and .fini sections contain XFLAT-
|
||||
* specific logic to manage static constructors and destructors.
|
||||
*/
|
||||
|
||||
*(.gnu.linkonce.t.*)
|
||||
*(.init)
|
||||
*(.fini)
|
||||
|
||||
/* This is special code area at the end of the normal
|
||||
text section. It contains a small lookup table at
|
||||
the start followed by the code pointed to by entries
|
||||
in the lookup table. */
|
||||
|
||||
. = ALIGN (4) ;
|
||||
PROVIDE(__ctbp = .);
|
||||
*(.call_table_data)
|
||||
*(.call_table_text)
|
||||
|
||||
_etext = . ;
|
||||
|
||||
} > ISPACE
|
||||
|
||||
/* DSpace is also located at address 0. Every (unrelocated) DSpace
|
||||
* address is an offset from the begining of this segment.
|
||||
*/
|
||||
|
||||
.data 0x00000000 :
|
||||
{
|
||||
__data_start = . ;
|
||||
*(.rodata)
|
||||
*(.rodata1)
|
||||
*(.rodata.*)
|
||||
*(.gnu.linkonce.r*)
|
||||
*(.data)
|
||||
*(.data1)
|
||||
*(.data.*)
|
||||
*(.gnu.linkonce.d*)
|
||||
*(.data1)
|
||||
*(.eh_frame)
|
||||
*(.gcc_except_table)
|
||||
|
||||
*(.gnu.linkonce.s.*)
|
||||
*(__libc_atexit)
|
||||
*(__libc_subinit)
|
||||
*(__libc_subfreeres)
|
||||
*(.note.ABI-tag)
|
||||
|
||||
/* C++ support. For each global and static local C++ object,
|
||||
* GCC creates a small subroutine to construct the object. Pointers
|
||||
* to these routines (not the routines themselves) are stored as
|
||||
* simple, linear arrays in the .ctors section of the object file.
|
||||
* Similarly, pointers to global/static destructor routines are
|
||||
* stored in .dtors.
|
||||
*/
|
||||
|
||||
*(.gnu.linkonce.d.*)
|
||||
|
||||
_ctors_start = . ;
|
||||
*(.ctors)
|
||||
_ctors_end = . ;
|
||||
_dtors_start = . ;
|
||||
*(.dtors)
|
||||
_dtors_end = . ;
|
||||
|
||||
_edata = . ;
|
||||
edata = ALIGN( 0x10 ) ;
|
||||
} > DSPACE
|
||||
|
||||
.bss :
|
||||
{
|
||||
__bss_start = _edata ;
|
||||
*(.dynsbss)
|
||||
*(.sbss)
|
||||
*(.sbss.*)
|
||||
*(.scommon)
|
||||
*(.dynbss)
|
||||
*(.bss)
|
||||
*(.bss.*)
|
||||
*(.bss*)
|
||||
*(.gnu.linkonce.b*)
|
||||
*(COMMON)
|
||||
end = ALIGN( 0x10 ) ;
|
||||
_end = ALIGN( 0x10 ) ;
|
||||
} > DSPACE
|
||||
|
||||
.got 0 : { *(.got.plt) *(.got) }
|
||||
.junk 0 : { *(.rel*) *(.rela*) }
|
||||
/* Stabs debugging sections. */
|
||||
.stab 0 : { *(.stab) }
|
||||
.stabstr 0 : { *(.stabstr) }
|
||||
.stab.excl 0 : { *(.stab.excl) }
|
||||
.stab.exclstr 0 : { *(.stab.exclstr) }
|
||||
.stab.index 0 : { *(.stab.index) }
|
||||
.stab.indexstr 0 : { *(.stab.indexstr) }
|
||||
.comment 0 : { *(.comment) }
|
||||
.debug_abbrev 0 : { *(.debug_abbrev) }
|
||||
.debug_info 0 : { *(.debug_info) }
|
||||
.debug_line 0 : { *(.debug_line) }
|
||||
.debug_pubnames 0 : { *(.debug_pubnames) }
|
||||
.debug_aranges 0 : { *(.debug_aranges) }
|
||||
}
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = pthread
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = signal
|
||||
|
||||
@@ -48,26 +47,32 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
|
||||
-include $(TOPDIR)/.config # Current configuration
|
||||
-include $(TOPDIR)/Make.defs # Basic make info
|
||||
include ../Make.defs # NXFLAT make info
|
||||
|
||||
BIN = task
|
||||
|
||||
@@ -48,27 +47,33 @@ R2OBJ = $(R2SRC:.S=.o)
|
||||
all: $(BIN)
|
||||
|
||||
$(R1OBJS): %.o: %.c
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "CC: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(R2OBJ): %.o: %.S
|
||||
$(NXFLATCC) -c $(NXFLATCFLAGS) $< -o $@
|
||||
@echo "AS: $<"
|
||||
@$(CC) -c $(CPICFLAGS) $< -o $@
|
||||
|
||||
$(BIN).r1: $(R1OBJS)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS1) -o $@ $^
|
||||
|
||||
$(R2SRC): $(BIN).r1
|
||||
$(MKNXFLAT) -o $@ $^
|
||||
@echo "MK: $<"
|
||||
@$(MKNXFLAT) -o $@ $^
|
||||
|
||||
$(BIN).r2: $(R2OBJ)
|
||||
$(NXFLATLD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
@echo "LD: $<"
|
||||
@$(LD) $(NXFLATLDFLAGS2) -o $@ $(R1OBJS) $(R2OBJ)
|
||||
|
||||
$(BIN): $(BIN).r2
|
||||
$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
@echo "LD: $<"
|
||||
@$(LDNXFLAT) $(LDNXFLATFLAGS) -o $@ $^
|
||||
|
||||
clean:
|
||||
rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
@rm -f $(BIN) $(R2SRC) *.o *.r1 *.r2 *~ .*.swp core
|
||||
|
||||
install:
|
||||
install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
@install -D $(BIN) $(ROMFS_DIR)/$(BIN)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user