Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C / C++ / MFC
  4. nmake problem - dependency tree

nmake problem - dependency tree

Scheduled Pinned Locked Moved C / C++ / MFC
questionc++visual-studiodata-structureshelp
10 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    charlieg
    wrote on last edited by
    #1

    I use evc++ extensively, which is sufficiently close to VC 6.0 that I think I am safe asking this question. I have a relatively large project - 600+ files - and I've started having to rebuild all files when I change targets. For some reason the ide / nmake decides I've changed something very important. Any ideas as to tracking down what file is triggering this? chg

    Charlie Gilley Will program for food...

    M D C 3 Replies Last reply
    0
    • C charlieg

      I use evc++ extensively, which is sufficiently close to VC 6.0 that I think I am safe asking this question. I have a relatively large project - 600+ files - and I've started having to rebuild all files when I change targets. For some reason the ide / nmake decides I've changed something very important. Any ideas as to tracking down what file is triggering this? chg

      Charlie Gilley Will program for food...

      M Offline
      M Offline
      Matthew Faithfull
      wrote on last edited by
      #2

      I also use EVC 3.0 and 4.0 with similar sized projects. Unfortunately what you're experiencing is normal as far as I can tell. When you change targets you're changing SDKs, derived from the different builds of CE with different BSPs. Any headers from the CE build used in your project, and there's almost bound to be some, will therefore change and if they're globalish headers everything will want rebuilding. You may be able to mitigate this a little by carefully trimming your #include inclusions but a full rebuild is still going to be needed in a lot of cases. Add to thi the known issues with the mostly failed attempt at an incremental linker that comes with EVC4/MSVC6 and you're probably better off wiht a full rebuild anyway. Good luck :)

      Nothing is exactly what it seems but everything with seems can be unpicked.

      C 1 Reply Last reply
      0
      • C charlieg

        I use evc++ extensively, which is sufficiently close to VC 6.0 that I think I am safe asking this question. I have a relatively large project - 600+ files - and I've started having to rebuild all files when I change targets. For some reason the ide / nmake decides I've changed something very important. Any ideas as to tracking down what file is triggering this? chg

        Charlie Gilley Will program for food...

        D Offline
        D Offline
        David Crow
        wrote on last edited by
        #3

        charlieg wrote:

        Any ideas as to tracking down what file is triggering this?

        Doesn't nmake.exe have some sort of command-line switch that shows what files are out-of-date but doesn't actually build them?

        "Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman

        "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

        C 1 Reply Last reply
        0
        • D David Crow

          charlieg wrote:

          Any ideas as to tracking down what file is triggering this?

          Doesn't nmake.exe have some sort of command-line switch that shows what files are out-of-date but doesn't actually build them?

          "Normal is getting dressed in clothes that you buy for work and driving through traffic in a car that you are still paying for, in order to get to the job you need to pay for the clothes and the car and the house you leave vacant all day so you can afford to live in it." - Ellen Goodman

          "To have a respect for ourselves guides our morals; to have deference for others governs our manners." - Laurence Sterne

          C Offline
          C Offline
          charlieg
          wrote on last edited by
          #4

          Yes, it does. I didn't want to go there just yet :). Looks like I have to.

          Charlie Gilley Will program for food...

          1 Reply Last reply
          0
          • M Matthew Faithfull

            I also use EVC 3.0 and 4.0 with similar sized projects. Unfortunately what you're experiencing is normal as far as I can tell. When you change targets you're changing SDKs, derived from the different builds of CE with different BSPs. Any headers from the CE build used in your project, and there's almost bound to be some, will therefore change and if they're globalish headers everything will want rebuilding. You may be able to mitigate this a little by carefully trimming your #include inclusions but a full rebuild is still going to be needed in a lot of cases. Add to thi the known issues with the mostly failed attempt at an incremental linker that comes with EVC4/MSVC6 and you're probably better off wiht a full rebuild anyway. Good luck :)

            Nothing is exactly what it seems but everything with seems can be unpicked.

            C Offline
            C Offline
            charlieg
            wrote on last edited by
            #5

            I'm at 4.1 and 5.0. Although I understand what you are saying, the target files are split according to SDK/target, and this *was* working in the past. It's just recently the thing has become possessed and insistent on rebuilding every dang file. It tasks me. I'll keep looking, I know I'm going to have to go into the command line and run nmake manually to see what is going on. If I learn anything useful, I'll post it back here.

            Charlie Gilley Will program for food...

            M M 2 Replies Last reply
            0
            • C charlieg

              I'm at 4.1 and 5.0. Although I understand what you are saying, the target files are split according to SDK/target, and this *was* working in the past. It's just recently the thing has become possessed and insistent on rebuilding every dang file. It tasks me. I'll keep looking, I know I'm going to have to go into the command line and run nmake manually to see what is going on. If I learn anything useful, I'll post it back here.

              Charlie Gilley Will program for food...

              M Offline
              M Offline
              Matthew Faithfull
              wrote on last edited by
              #6

              If nmake doesn't cough up useful results take a look in EVC under Tools, Options in the Directories Tab and make sure the folders for each Platform are correct for each type of directory and the lists are in order of precedence. This information is not saved in the workspace, it's IDE config in EVC4 and MSVC6 and can seriously screw up your projects if it's wrong. I hope you can crack it. :)

              Nothing is exactly what it seems but everything with seems can be unpicked.

              1 Reply Last reply
              0
              • C charlieg

                I'm at 4.1 and 5.0. Although I understand what you are saying, the target files are split according to SDK/target, and this *was* working in the past. It's just recently the thing has become possessed and insistent on rebuilding every dang file. It tasks me. I'll keep looking, I know I'm going to have to go into the command line and run nmake manually to see what is going on. If I learn anything useful, I'll post it back here.

                Charlie Gilley Will program for food...

                M Offline
                M Offline
                Member 754960
                wrote on last edited by
                #7

                What do you mean by "switch targets"? As for the nmake aruments, -n and -m are the ones I think you want and pipe the output to a file. Another is -B to force a full build; a test I do is build with -B then without and if the second does anything I look further. Occassionaly we get problems with the system clock on different system and around when daylight savings time changes.

                C 1 Reply Last reply
                0
                • M Member 754960

                  What do you mean by "switch targets"? As for the nmake aruments, -n and -m are the ones I think you want and pipe the output to a file. Another is -B to force a full build; a test I do is build with -B then without and if the second does anything I look further. Occassionaly we get problems with the system clock on different system and around when daylight savings time changes.

                  C Offline
                  C Offline
                  charlieg
                  wrote on last edited by
                  #8

                  hard to explain w/o a screen shot. In vs, let's say you can build for release or debug. Well, in evc++, the ide targets platforms - say x86 and ARM (different processors). Under each platform, you can have a release and debug. For example, in my case, I have two platforms and two targets for each platform - 4 possible executables. I have to tear into the nmake and see what we've done to the dependencies to trigger this....

                  Charlie Gilley Will program for food...

                  1 Reply Last reply
                  0
                  • C charlieg

                    I use evc++ extensively, which is sufficiently close to VC 6.0 that I think I am safe asking this question. I have a relatively large project - 600+ files - and I've started having to rebuild all files when I change targets. For some reason the ide / nmake decides I've changed something very important. Any ideas as to tracking down what file is triggering this? chg

                    Charlie Gilley Will program for food...

                    C Offline
                    C Offline
                    charlieg
                    wrote on last edited by
                    #9

                    In a flash of inspiration (meaning I decided to stop being stupid), I recovered a backup copy of my project. It behaves as it should - I can switch targets, and it does not cause a complete re-compile. So, something broke between then and now. Just have to find it.

                    Charlie Gilley Will program for food...

                    C 1 Reply Last reply
                    0
                    • C charlieg

                      In a flash of inspiration (meaning I decided to stop being stupid), I recovered a backup copy of my project. It behaves as it should - I can switch targets, and it does not cause a complete re-compile. So, something broke between then and now. Just have to find it.

                      Charlie Gilley Will program for food...

                      C Offline
                      C Offline
                      charlieg
                      wrote on last edited by
                      #10

                      Debugging 101 - change one thing only, see what happens. What burned me is that I have a header file with version information in it. This header file is clearly documented to be used sparingly. I made a minor change, and since it coincided with a rebuild, did not notice the behavior for a while. So, nothing wrong with EVC++, it is doing exactly what it is supposed to do.

                      Charlie Gilley Will program for food...

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups