136ac495dSmrg#! /bin/sh 236ac495dSmrg# 336ac495dSmrg# Copyright (c) 2013 Matthew R. Green 436ac495dSmrg# All rights reserved. 536ac495dSmrg# 636ac495dSmrg# Redistribution and use in source and binary forms, with or without 736ac495dSmrg# modification, are permitted provided that the following conditions 836ac495dSmrg# are met: 936ac495dSmrg# 1. Redistributions of source code must retain the above copyright 1036ac495dSmrg# notice, this list of conditions and the following disclaimer. 1136ac495dSmrg# 2. Redistributions in binary form must reproduce the above copyright 1236ac495dSmrg# notice, this list of conditions and the following disclaimer in the 1336ac495dSmrg# documentation and/or other materials provided with the distribution. 1436ac495dSmrg# 1536ac495dSmrg# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1636ac495dSmrg# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1736ac495dSmrg# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1836ac495dSmrg# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1936ac495dSmrg# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 2036ac495dSmrg# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 2136ac495dSmrg# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 2236ac495dSmrg# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 2336ac495dSmrg# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2436ac495dSmrg# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2536ac495dSmrg# SUCH DAMAGE. 2636ac495dSmrg 2736ac495dSmrg# 2836ac495dSmrg# Generate a c++config.h that will include the correct multilib c++config.h 2936ac495dSmrg# 3036ac495dSmrg# mkcxxconfig_h.sh [[<arch> <define>] ...] <arch> 3136ac495dSmrg# 3236ac495dSmrg# generates a series of #ifdef 's with the final <arch> being the default 3336ac495dSmrg# 3436ac495dSmrg 3536ac495dSmrgemit_intro() { 3636ac495dSmrg cat <<'__EOH1__' 37*d914a3c1Smrg/* $NetBSD: mkcxxconfig_h.sh,v 1.8 2021/12/11 19:24:19 mrg Exp $ */ 3836ac495dSmrg 3936ac495dSmrg/* This file is automatically generated. DO NOT EDIT! */ 4036ac495dSmrg__EOH1__ 4136ac495dSmrg 42*d914a3c1Smrg netbsd_id=$(echo '$NetBSD: mkcxxconfig_h.sh,v 1.8 2021/12/11 19:24:19 mrg Exp $' | sed 's,[#$],,g;s,.*,&,') 4336ac495dSmrg cat <<__EOH2__ 4436ac495dSmrg/* Generated from: $netbsd_id */ 4536ac495dSmrg 4636ac495dSmrg__EOH2__ 4736ac495dSmrg} 4836ac495dSmrg 4936ac495dSmrgemit_final() { 5036ac495dSmrg echo "#endif" 5136ac495dSmrg} 5236ac495dSmrg 5336ac495dSmrg# $1 - arch to include 5436ac495dSmrgemit_include() { 5536ac495dSmrg echo "#include "'"'"bits/$1/c++config.h"'"' 5636ac495dSmrg} 5736ac495dSmrg 5836ac495dSmrg# $1 - define to ifdef 5936ac495dSmrgifdef=ifdef 6036ac495dSmrgemit_ifdef() { 6136ac495dSmrg echo "#$ifdef $1" 6236ac495dSmrg ifdef="elif" 6336ac495dSmrg} 6436ac495dSmrg 6536ac495dSmrgmain() { 6636ac495dSmrg emit_intro 6736ac495dSmrg while [ $# -gt 0 ]; do 6836ac495dSmrg if [ $# -eq 1 ]; then 6936ac495dSmrg echo '#else' 7036ac495dSmrg emit_include $1 7136ac495dSmrg break 7236ac495dSmrg fi 7336ac495dSmrg emit_ifdef $2 7436ac495dSmrg emit_include $1 7536ac495dSmrg shift 7636ac495dSmrg shift 7736ac495dSmrg done 7836ac495dSmrg emit_final 7936ac495dSmrg} 8036ac495dSmrg 8136ac495dSmrgmain "$@" 82