Skip to content

Commit

Permalink
Makefile: Build the tools/incdir binary immediately.
Browse files Browse the repository at this point in the history
Before any other Make logic can be used, we must immediately build the tools/incdir binary.  It will be used as soon as Make.defs is included and will generate errors otherwise.

Remove the other locations in the tools/incdir binary was being build from tools/Makefile.unix and tools/Makefile.win
  • Loading branch information
gregory-nutt authored and Ouss4 committed May 31, 2020
1 parent e018309 commit 18e4ab9
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 50 deletions.
57 changes: 23 additions & 34 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,52 +1,41 @@
############################################################################
# Makefile
#
# Copyright (C) 2012, 2018 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <[email protected]>
# 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:
@echo "Nuttx has not been configured:"
@echo " tools/configure.sh <target>"
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
Expand Down
9 changes: 2 additions & 7 deletions tools/Makefile.unix
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
#
Expand Down
11 changes: 2 additions & 9 deletions tools/Makefile.win
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
#
Expand Down

0 comments on commit 18e4ab9

Please sign in to comment.