diff --git a/Makefile b/Makefile index ea1866ad4f..cc92b82016 100644 --- a/Makefile +++ b/Makefile @@ -1,45 +1,24 @@ ############################################################################ # Makefile # -# Copyright (C) 2012, 2018 Gregory Nutt. All rights reserved. -# Author: Gregory Nutt +# 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 # -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions -# are met: +# http://www.apache.org/licenses/LICENSE-2.0 # -# 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. +# 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. # ############################################################################ -# This is a top-level "kludge" Makefile that just includes the correct -# Makefile. If you already know the Makefile that you want, you can skip -# this nonsense using: -# -# make -f tools/Makefile.unix, OR -# make -f tools/Makefile.win -# +# Check if the system has been configured ifeq ($(wildcard .config),) .DEFAULT default: @@ -47,6 +26,16 @@ ifeq ($(wildcard .config),) @echo " tools/configure.sh " else include .config + +# Build any necessary tools needed early in the build. +# incdir - Is needed immediately by all Make.defs file. + +TOPDIR := ${shell echo $(CURDIR) | sed -e 's/ /\\ /g'} +DUMMY := ${shell $(MAKE) -C tools -f Makefile.host incdir \ + INCDIR="$(TOPDIR)/tools/incdir.sh"} + +# Include the correct Makefile for the selected architecture. + ifeq ($(CONFIG_WINDOWS_NATIVE),y) include tools/Makefile.win else diff --git a/tools/Makefile.unix b/tools/Makefile.unix index 8a69b54ffc..f21e0c2ab8 100644 --- a/tools/Makefile.unix +++ b/tools/Makefile.unix @@ -355,11 +355,6 @@ clean_context: include tools/LibTargets.mk -# Build the incdir tools need for all builds - -tools/incdir$(HOSTEXEEXT): - $(Q) $(MAKE) -C tools -f Makefile.host TOPDIR="$(TOPDIR)" incdir$(HOSTEXEEXT) - # pass1 and pass2 # # If the 2 pass build option is selected, then this pass1 target is @@ -370,9 +365,9 @@ tools/incdir$(HOSTEXEEXT): # is an archive. Exactly what is performed during pass1 or what it generates # is unknown to this makefile unless CONFIG_PASS1_OBJECT is defined. -pass1: tools/incdir$(HOSTEXEEXT) $(USERLIBS) +pass1: $(USERLIBS) -pass2: tools/incdir$(HOSTEXEEXT) $(NUTTXLIBS) +pass2: $(NUTTXLIBS) # $(BIN) # diff --git a/tools/Makefile.win b/tools/Makefile.win index 0d77231636..68cb0bd7c3 100644 --- a/tools/Makefile.win +++ b/tools/Makefile.win @@ -330,13 +330,6 @@ clean_context: # execution will then be built from those libraries. The following targets # build those libraries. -include tools/LibTargets.mk - -# Build the incdir tools need for all builds - -tools\incdir$(HOSTEXEEXT): - $(Q) $(MAKE) -C tools -f Makefile.host TOPDIR="$(TOPDIR)" incdir$(HOSTEXEEXT) - # pass1 and pass2 # # If the 2 pass build option is selected, then this pass1 target is @@ -347,9 +340,9 @@ tools\incdir$(HOSTEXEEXT): # is an archive. Exactly what is performed during pass1 or what it generates # is unknown to this makefile unless CONFIG_PASS1_OBJECT is defined. -pass1: tools\incdir$(HOSTEXEEXT) $(USERLIBS) +pass1: $(USERLIBS) -pass2: tools\incdir$(HOSTEXEEXT) $(NUTTXLIBS) +pass2: $(NUTTXLIBS) # $(BIN) #