Makefile if statement causing some weird behavior












0















In my makefile, the user supplies an argument called EXEC (make target EXEC=something). I want this to happen:



if EXEC equals "server"
make the variable NOT equal to "client"
if EXEC equals "client"
make the variable NOT equal to "server"


I tried doing this:



ifeq ($(EXEC),server)
NOT := client
endif
ifeq ($(EXEC),client)
NOT := server
endif


I run this by saying make -f build.mk EXEC=server



the output is:



NOT := client
make[2]: NOT: No such file or directory


Why is this error happening?










share|improve this question



























    0















    In my makefile, the user supplies an argument called EXEC (make target EXEC=something). I want this to happen:



    if EXEC equals "server"
    make the variable NOT equal to "client"
    if EXEC equals "client"
    make the variable NOT equal to "server"


    I tried doing this:



    ifeq ($(EXEC),server)
    NOT := client
    endif
    ifeq ($(EXEC),client)
    NOT := server
    endif


    I run this by saying make -f build.mk EXEC=server



    the output is:



    NOT := client
    make[2]: NOT: No such file or directory


    Why is this error happening?










    share|improve this question

























      0












      0








      0








      In my makefile, the user supplies an argument called EXEC (make target EXEC=something). I want this to happen:



      if EXEC equals "server"
      make the variable NOT equal to "client"
      if EXEC equals "client"
      make the variable NOT equal to "server"


      I tried doing this:



      ifeq ($(EXEC),server)
      NOT := client
      endif
      ifeq ($(EXEC),client)
      NOT := server
      endif


      I run this by saying make -f build.mk EXEC=server



      the output is:



      NOT := client
      make[2]: NOT: No such file or directory


      Why is this error happening?










      share|improve this question














      In my makefile, the user supplies an argument called EXEC (make target EXEC=something). I want this to happen:



      if EXEC equals "server"
      make the variable NOT equal to "client"
      if EXEC equals "client"
      make the variable NOT equal to "server"


      I tried doing this:



      ifeq ($(EXEC),server)
      NOT := client
      endif
      ifeq ($(EXEC),client)
      NOT := server
      endif


      I run this by saying make -f build.mk EXEC=server



      the output is:



      NOT := client
      make[2]: NOT: No such file or directory


      Why is this error happening?







      makefile






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 23 '18 at 17:16









      Matt XMatt X

      1078




      1078
























          1 Answer
          1






          active

          oldest

          votes


















          1














          It seems you've indented the variable assignment with a TAB character. That means that line is considered part of the recipe for the previous target.



          Since you haven't provided the entire makefile, or at least the section of the makefile before/after this, we can't say more than that.



          However, in general in a makefile you should never indent any lines with TAB characters unless they are intended to be a part of a recipe.






          share|improve this answer























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450726%2fmakefile-if-statement-causing-some-weird-behavior%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            1














            It seems you've indented the variable assignment with a TAB character. That means that line is considered part of the recipe for the previous target.



            Since you haven't provided the entire makefile, or at least the section of the makefile before/after this, we can't say more than that.



            However, in general in a makefile you should never indent any lines with TAB characters unless they are intended to be a part of a recipe.






            share|improve this answer




























              1














              It seems you've indented the variable assignment with a TAB character. That means that line is considered part of the recipe for the previous target.



              Since you haven't provided the entire makefile, or at least the section of the makefile before/after this, we can't say more than that.



              However, in general in a makefile you should never indent any lines with TAB characters unless they are intended to be a part of a recipe.






              share|improve this answer


























                1












                1








                1







                It seems you've indented the variable assignment with a TAB character. That means that line is considered part of the recipe for the previous target.



                Since you haven't provided the entire makefile, or at least the section of the makefile before/after this, we can't say more than that.



                However, in general in a makefile you should never indent any lines with TAB characters unless they are intended to be a part of a recipe.






                share|improve this answer













                It seems you've indented the variable assignment with a TAB character. That means that line is considered part of the recipe for the previous target.



                Since you haven't provided the entire makefile, or at least the section of the makefile before/after this, we can't say more than that.



                However, in general in a makefile you should never indent any lines with TAB characters unless they are intended to be a part of a recipe.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 23 '18 at 19:28









                MadScientistMadScientist

                46.1k44966




                46.1k44966






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53450726%2fmakefile-if-statement-causing-some-weird-behavior%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Berounka

                    Fiat S.p.A.

                    Type 'String' is not a subtype of type 'int' of 'index'