windows - Hvad er denne fejl i en Makefile?

Indlæg af Hanne Mølgaard Plasc

Problem



Ved hjælp af 'make' fra ARM DS-5 5.22 udgivelsen på Cygwin behandler jeg en makefile indeholdende linjerne:


if [** ! -d "$(OBJ\_DIR)" **]; 
    then $(MD) "$(OBJ\_DIR)"; fi


Dette vurderes til:


if [** ! -d "../../output/obj" **]; 
    then mkdir -p "../../output/obj"; fi


Når jeg laver, får jeg en fejl:


make -C ./src/modules
make[1]: Entering directory `C:/Users/me/Documents/proj/src/modules'
if [** ! -d "../../output/obj" **]; 
        then mkdir -p "../../output/obj"; fi
! was unexpected at this time.
make[1]: *** [setenv] Error 255
make[1]: Leaving directory `C:/Users/me/Documents/proj/src/modules'
make: *** [drivers] Error 2


Når kommandoen mkdir eksplicit køres fra kommandolinjen, virker den som forventet, og mappen output/obj oprettes uden problemer.


Dette script fungerer fint på andre computere.


Hvad betyder fejlen ! was unexpected at this time., og hvordan kan du rette den?


UPDATE: Kommandoen make påberåbes fra følgende shell script:


#!/bin/bash

set -e

export PATH='./:/usr/bin/:/cygdrive/c/Program Files/ARMCompiler6.6/bin/'
export ARM\_PRODUCT\_PATH='c:/DS-5\_v5.22/sw/mappings'
export USEARMCOMPILER6=1
export DS5VER=DS-5\_5.22

/cygdrive/c/DS-5\_v5.22/bin/make "$@"

Bedste reference