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
  1. Home
  2. The Lounge
  3. Build Systems

Build Systems

Scheduled Pinned Locked Moved The Lounge
question
30 Posts 17 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.
  • R Offline
    R Offline
    RichardS
    wrote on last edited by
    #1

    Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

    B V M R K 11 Replies Last reply
    0
    • R RichardS

      Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

      "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

      B Offline
      B Offline
      benjymous
      wrote on last edited by
      #2

      It depends on how complex your build process is Make is incredibly powerful, and usable for pretty much any automated task, if you put your mind to it, but with that power you get a system that can drive most people insane trying to make the syntax work It's basically a set of rules that say "source file *.c turns into *.obj using the following command line" "A.obj B.obj C.obj turn into MyApp.exe using the following command line" etc So if you've got tools that take one file as input, and output another, you can chain them together. It works backwards, looking at what's changed, and only performs the necessary steps (in theory, assuming you've set up your script right) Whilst you could do the same with a .bat file, it'd be far more complex to keep up to date every time you add a new source file, since Make is happy to work with wildcards

      -- Help me! I'm turning into a grapefruit! Buzzwords!

      R 1 Reply Last reply
      0
      • R RichardS

        Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

        "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

        V Offline
        V Offline
        Vikram A Punathambekar
        wrote on last edited by
        #3

        Build: CuriseControl NAnt Although the following aren't build tools per se, we use* them in our automated build: NUnit FxCop NDoc Simian * Euphemism. People don't really care what errors FxCop throws, or what doc NDoc produces; but hey, it's part of the process so we say we use it. :-D

        Cheers, Vikram.


        "Life isn't fair, and the world is full of unscrupulous characters. There are things worth fighting for, killing for and dying for, but it's a really small list. Chalk it up to experience, let it go, and move on to the next positive experience in your life." - Christopher Duncan.

        M 1 Reply Last reply
        0
        • R RichardS

          Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

          "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

          M Offline
          M Offline
          Mike Dimmick
          wrote on last edited by
          #4

          A lot of the stuff I do is currently oriented around Visual Studio projects and workspaces/solutions. Particularly for Windows CE/Windows Mobile projects, it's really hard to set up a command line environment where you can actually use nmake effectively. So my technique is to just get VS/eVC to do the build. All versions of Visual Studio support building from the command line. For VC 6:

          msdev myprj.dsp /make "ALL - RELEASE" /rebuild

          eVC:

          evc myprj.vcp /make "ALL - RELEASE" /CEConfig="Pocket PC 2003" /rebuild

          VS 2003, 2005:

          devenv solution.sln /rebuild Release

          I put the appropriate sequence of commands into a batch file. Tools like nmake, NAnt, MSBuild etc really only offer additional dependency management. For a testing or final release build I normally rebuild everything anyway, which nullifies the benefit of dependency management (that is, only rebuilding things that have changed). They're helpful on a developer's workstation for tools that don't have their own dependency management, but VS does (admittedly, sometimes it doesn't get it right). To assist with eVC builds I wrote a program which looks at the workspace to determine the right version of eVC to use (3.0 or 4.0), then looks in the registry to work out where eVC was installed to, so I don't need eVC in my path or installed to a fixed location.

          Stability. What an interesting concept. -- Chris Maunder

          S C 2 Replies Last reply
          0
          • B benjymous

            It depends on how complex your build process is Make is incredibly powerful, and usable for pretty much any automated task, if you put your mind to it, but with that power you get a system that can drive most people insane trying to make the syntax work It's basically a set of rules that say "source file *.c turns into *.obj using the following command line" "A.obj B.obj C.obj turn into MyApp.exe using the following command line" etc So if you've got tools that take one file as input, and output another, you can chain them together. It works backwards, looking at what's changed, and only performs the necessary steps (in theory, assuming you've set up your script right) Whilst you could do the same with a .bat file, it'd be far more complex to keep up to date every time you add a new source file, since Make is happy to work with wildcards

            -- Help me! I'm turning into a grapefruit! Buzzwords!

            R Offline
            R Offline
            RichardS
            wrote on last edited by
            #5

            Can make run external exe's on .obj files? e.g use programme x.exe --someargs A.obj

            "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

            B S 2 Replies Last reply
            0
            • R RichardS

              Can make run external exe's on .obj files? e.g use programme x.exe --someargs A.obj

              "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

              B Offline
              B Offline
              benjymous
              wrote on last edited by
              #6

              Yup, that's the whole point of Make, you tell it what steps it needs to do, and it handles the rest

              -- Help me! I'm turning into a grapefruit! Buzzwords!

              R 1 Reply Last reply
              0
              • B benjymous

                Yup, that's the whole point of Make, you tell it what steps it needs to do, and it handles the rest

                -- Help me! I'm turning into a grapefruit! Buzzwords!

                R Offline
                R Offline
                RichardS
                wrote on last edited by
                #7

                Great. I was looking at Cuisecontrol (mentioned below) that offers different publishing tools. Does make offer any reporting tools?

                "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                B 1 Reply Last reply
                0
                • R RichardS

                  Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

                  "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                  R Offline
                  R Offline
                  Rage
                  wrote on last edited by
                  #8

                  RichardS wrote:

                  Do any of you use builds systems

                  Yes, make is your friend. The better I have ever seen is the GNU Make, which has incredible functionalities (that come on the top of .bat since you can call .bat or anything inside the make).

                  ~RaGE();

                  I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus

                  1 Reply Last reply
                  0
                  • R RichardS

                    Can make run external exe's on .obj files? e.g use programme x.exe --someargs A.obj

                    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                    S Offline
                    S Offline
                    Sceptic Mole
                    wrote on last edited by
                    #9

                    RichardS wrote:

                    Can make run external exe's on .obj files? e.g use programme x.exe --someargs A.obj

                    If you ask that way don't use make! :|

                    1 Reply Last reply
                    0
                    • R RichardS

                      Great. I was looking at Cuisecontrol (mentioned below) that offers different publishing tools. Does make offer any reporting tools?

                      "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                      B Offline
                      B Offline
                      benjymous
                      wrote on last edited by
                      #10

                      Make is basically a scripting language, so if you've got an existing reporting tool, you can run it as part of your make process

                      -- Help me! I'm turning into a grapefruit! Buzzwords!

                      1 Reply Last reply
                      0
                      • M Mike Dimmick

                        A lot of the stuff I do is currently oriented around Visual Studio projects and workspaces/solutions. Particularly for Windows CE/Windows Mobile projects, it's really hard to set up a command line environment where you can actually use nmake effectively. So my technique is to just get VS/eVC to do the build. All versions of Visual Studio support building from the command line. For VC 6:

                        msdev myprj.dsp /make "ALL - RELEASE" /rebuild

                        eVC:

                        evc myprj.vcp /make "ALL - RELEASE" /CEConfig="Pocket PC 2003" /rebuild

                        VS 2003, 2005:

                        devenv solution.sln /rebuild Release

                        I put the appropriate sequence of commands into a batch file. Tools like nmake, NAnt, MSBuild etc really only offer additional dependency management. For a testing or final release build I normally rebuild everything anyway, which nullifies the benefit of dependency management (that is, only rebuilding things that have changed). They're helpful on a developer's workstation for tools that don't have their own dependency management, but VS does (admittedly, sometimes it doesn't get it right). To assist with eVC builds I wrote a program which looks at the workspace to determine the right version of eVC to use (3.0 or 4.0), then looks in the registry to work out where eVC was installed to, so I don't need eVC in my path or installed to a fixed location.

                        Stability. What an interesting concept. -- Chris Maunder

                        S Offline
                        S Offline
                        Sceptic Mole
                        wrote on last edited by
                        #11

                        Mike Dimmick wrote:

                        A lot of the stuff I do is currently oriented around Visual Studio projects and workspaces/solutions. Particularly for Windows CE/Windows Mobile projects, it's really hard to set up a command line environment where you can actually use nmake effectively. So my technique is to just get VS/eVC to do the build. All versions of Visual Studio support building from the command line. For VC 6: msdev myprj.dsp /make "ALL - RELEASE" /rebuild

                        I did the same some time ago in a VC++ 6.0 project. BTW, how can you use VC 8.0 from the command line? -- modified at 8:08 Monday 30th October, 2006 Got it:

                        Command line builds:
                        devenv solutionfile.sln /build solutionconfig [ /project projectnameorfile [ /projectconfig name ] ]
                        Available command line switches:

                        /Edit Opens the specified files in a running instance of this
                        application. If there are no running instances, it will
                        start a new instance with a simplified window layout.
                        /Log Logs IDE activity to the specified file for troubleshooting.
                        /ResetSettings Restores the IDE's default settings, optionally resets to
                        the specified VSSettings file.
                        /SafeMode Launches the IDE in safe mode loading minimal windows.

                        devenv.exe is not included in VCExpress.

                        D 1 Reply Last reply
                        0
                        • R RichardS

                          Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

                          "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                          K Offline
                          K Offline
                          Kyudos
                          wrote on last edited by
                          #12

                          We use Visual Build Pro[^] from Kinook Software. I highly recommend it, the product is solid, caters for anything you can think of and the support is also first class.

                          1 Reply Last reply
                          0
                          • V Vikram A Punathambekar

                            Build: CuriseControl NAnt Although the following aren't build tools per se, we use* them in our automated build: NUnit FxCop NDoc Simian * Euphemism. People don't really care what errors FxCop throws, or what doc NDoc produces; but hey, it's part of the process so we say we use it. :-D

                            Cheers, Vikram.


                            "Life isn't fair, and the world is full of unscrupulous characters. There are things worth fighting for, killing for and dying for, but it's a really small list. Chalk it up to experience, let it go, and move on to the next positive experience in your life." - Christopher Duncan.

                            M Offline
                            M Offline
                            Marc Clifton
                            wrote on last edited by
                            #13

                            Vikram A Punathambekar wrote:

                            CuriseControl

                            You sure that wasn't Curse Control? ;P Marc

                            Thyme In The Country

                            People are just notoriously impossible. --DavidCrow
                            There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
                            People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith

                            P 1 Reply Last reply
                            0
                            • R RichardS

                              Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

                              "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                              P Offline
                              P Offline
                              peterchen
                              wrote on last edited by
                              #14

                              I recently converted my batch build file to MS PowerShell (formerly known as Monad). It is quirky and weird and takes some trickery to get started and some time to get used to - but boy you can do all these things! * push the stdout of a program in a string, and search for tokens, e.g. to display "(N) errors" summary * search & replace in a plain text file * access & modify XML files * Use all the .NET goodies * Access COM / Automation interfaces * Error Handling is way better than in batch files (though it could still improve) * Functions! Howly cow! It has functions! With Name! And Parameters! (this bulleted list was specifically designed for Shog9oth' pleasure) Dedicated build systems might be better for a particular task (e.g. nant for .NET stuff), but I have no experience with them. -- modified at 8:15 Monday 30th October, 2006


                              We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                              Linkify! || Fold With Us! || sighist

                              S 1 Reply Last reply
                              0
                              • M Marc Clifton

                                Vikram A Punathambekar wrote:

                                CuriseControl

                                You sure that wasn't Curse Control? ;P Marc

                                Thyme In The Country

                                People are just notoriously impossible. --DavidCrow
                                There's NO excuse for not commenting your code. -- John Simmons / outlaw programmer
                                People who say that they will refactor their code later to make it "good" don't understand refactoring, nor the art and craft of programming. -- Josh Smith

                                P Offline
                                P Offline
                                peterchen
                                wrote on last edited by
                                #15

                                Marc Clifton wrote:

                                Curse Control

                                You are not by chance talking about the COM interface for InstallShield? :rolleyes:


                                We are a big screwed up dysfunctional psychotic happy family - some more screwed up, others more happy, but everybody's psychotic joint venture definition of CP
                                Linkify! || Fold With Us! || sighist

                                1 Reply Last reply
                                0
                                • R RichardS

                                  Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

                                  "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                                  L Offline
                                  L Offline
                                  Lost User
                                  wrote on last edited by
                                  #16

                                  Make, planning to indtroduce auto dependancy which was used at my last place.

                                  The tigress is here :-D

                                  R 1 Reply Last reply
                                  0
                                  • R RichardS

                                    Hi All, I am evaluating different build mechanisms as our products require an number of programmes to be run. Do any of you use builds systems like Ant, Bake, Jam, make, etc.? Are they better than a simple .bat file? Which ones would you recommend? thanks, Rich

                                    "Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far the Universe is winning." -- Rich Cook

                                    S Offline
                                    S Offline
                                    Shuqian Ying
                                    wrote on last edited by
                                    #17

                                    Try x-script generator. It can be used to generator NAnt scripts using GUI, which allows you to invoke all exiting build tools (like compiler, linker, etc.). In addition, if there is a need to have more control over the build process that is not *standard*, like code insertion, code protection, code image manipulation (e.g. code protection, ...), etc. You can write your own extension assemblies or use other existing ones that can easily be plugged into the x-script generator system (and NAnt extension ports) and to have it run at a particular step you want in the build process. The user side of the "learning" curve for it is very smooth and the script generation is half automated so that its very easy.

                                    E 1 Reply Last reply
                                    0
                                    • L Lost User

                                      Make, planning to indtroduce auto dependancy which was used at my last place.

                                      The tigress is here :-D

                                      R Offline
                                      R Offline
                                      Rage
                                      wrote on last edited by
                                      #18

                                      Trollslayer wrote:

                                      auto dependancy

                                      What is auto dependency ? target finding their dependencies automatically, like in visual ?

                                      ~RaGE();

                                      I think words like 'destiny' are a way of trying to find order where none exists. - Christian Graus

                                      L 1 Reply Last reply
                                      0
                                      • S Sceptic Mole

                                        Mike Dimmick wrote:

                                        A lot of the stuff I do is currently oriented around Visual Studio projects and workspaces/solutions. Particularly for Windows CE/Windows Mobile projects, it's really hard to set up a command line environment where you can actually use nmake effectively. So my technique is to just get VS/eVC to do the build. All versions of Visual Studio support building from the command line. For VC 6: msdev myprj.dsp /make "ALL - RELEASE" /rebuild

                                        I did the same some time ago in a VC++ 6.0 project. BTW, how can you use VC 8.0 from the command line? -- modified at 8:08 Monday 30th October, 2006 Got it:

                                        Command line builds:
                                        devenv solutionfile.sln /build solutionconfig [ /project projectnameorfile [ /projectconfig name ] ]
                                        Available command line switches:

                                        /Edit Opens the specified files in a running instance of this
                                        application. If there are no running instances, it will
                                        start a new instance with a simplified window layout.
                                        /Log Logs IDE activity to the specified file for troubleshooting.
                                        /ResetSettings Restores the IDE's default settings, optionally resets to
                                        the specified VSSettings file.
                                        /SafeMode Launches the IDE in safe mode loading minimal windows.

                                        devenv.exe is not included in VCExpress.

                                        D Offline
                                        D Offline
                                        Daniel Grunwald
                                        wrote on last edited by
                                        #19

                                        You can build VS 2005 solutions on the command line using msbuild.exe (installed with the framework, not even the SDK is required).

                                        S 1 Reply Last reply
                                        0
                                        • D Daniel Grunwald

                                          You can build VS 2005 solutions on the command line using msbuild.exe (installed with the framework, not even the SDK is required).

                                          S Offline
                                          S Offline
                                          Shog9 0
                                          wrote on last edited by
                                          #20

                                          Not C++...

                                          every night, i kneel at the foot of my bed and thank the Great Overseeing Politicians for protecting my freedoms by reducing their number, as if they were deer in a state park. -- Chris Losinger, Online Poker Players?

                                          D 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