90 likes | 425 Views
CS240 Dick Steflik. Software Development. Make. “make” is a software engineering tool for managing and maintaining computer programs Help minimize the life cycle cost of developing and maintaining computer software Descriptor file Name: “makefile” // POT (Plain Old Text)
E N D
CS240 Dick Steflik Software Development
Make • “make” is a software engineering tool for managing and maintaining computer programs • Help minimize the life cycle cost of developing and maintaining computer software • Descriptor file • Name: “makefile” // POT (Plain Old Text) • Defines job steps and what the dependencies for that job step are . • Also the actual command for accomplishing that job step
makefile descriptor file • Made up of : • Macro definitions • For doing text substitutions • $(name) – to invoke • Comments (start with a # character • Dependency rule: • Target (one or more) : dependencies (zero or more) ; • Name of the file to be created • : (reqd character) • Dependencies – space delimited list of files reqd for this step • One or more commands (must start with a tab character)
Sample makefile prog.exe : prog.c bag.o bag.c gcc prog.c bag.o -oprog.exe bag.o : bag.c bag.h gcc bag.c -c
Using make • In the directory where your files are place the descriptor file with the name makefile • No file extension • At the command prompt enter make • make will go through the descriptor file checking dependencies, insuring that the most recent files are included and any intermediate files are recompiled if their time/date stamps are more recent than the current time/date stamps on the dependent files
Version Control Systems • Used on multi programmer projects to insure that developers don't accidentally destroy each other's changes • Like a library: each user has to check files in and out, systems prevents one person from saving their changes to a file on top of another person's changes • System enforces safe controls • Changes are saves as a sequence of add, delets and modifications to a base file, not as complete files
CVS • Concurrent Versioning System • Oldest of the version control systems • Open Source • Client-server architecture • Originally developed for UNIX • Ported to Windows NT • Each time a file is checked in, user is required to enter a description of what was done • Commandline and GUI based client programs are available.
Visual SourceSafe • Originally developed by One Tree Software • Original name was Delta • Acquired by Microsoft and rebranded as Visual SourceSafe (1994) • Integrates with most Microsoft software development products • Not Client Server based
Subversion • Open Source version control system • Circa 2000, goal is to be the preferred successor to CVS • Widely used in the Open Source community for version control on projects like Apache, KDE, Gnome, gcc, python, ruby, Mono... • Client-server architecture • Commandline and GUI clients available for most OS environments.