Create a Makefile That Will Manage the Construction of a Program
Total Page:16
File Type:pdf, Size:1020Kb

Makefile Exercise
Makefile (50 points) Requirements Create a “makefile” that will manage the construction of a program The name of the makefile must be: makefile The make file must produce an executable file. The name of the executable file must be: myProgram Use the g++ compiler (This is the C++ compiler from our friends at GNU. It is on Einstein) Base the makefile on the source files listed below. The makefile and the source files must be located in $HOME/itec400/homework Your instructor will test this lab assignment in your “homework” directory.
Source files
Create the following 5 files exactly the way they are listed under your “homework” directory and make the file permissions 705:
Source File 1: main.cpp #include "employee.h" #include "address.h" int main() { printf("program works\n"); }
Source File 2: employee.cpp #include "address.h"
Source File 3: address.cpp #include
Source File 4: employee.h #ifndef EMPLOYEE_H #define EMPLOYEE_H #endif
Source File 5: address.h #ifndef ADDRESS_H #define ADDRESS_H #include
Testing Makefile Exercise
The script “test_build.sh” is utilized to invoke the “make” command. You can obtain a copy “test_build.sh” at the following location: http://cs.franklin.edu/~dandrear/itec400/Misc/test_build.sh If you have written your “makefile” properly, execution of the test_build.sh script should generate the following:
Case #1: ./test_build.sh
Sample Output:
1. touch everything - everything should build g++ -c main.cpp g++ -c employee.cpp g++ -c address.cpp g++ -o myProgram main.o employee.o address.o
2. touch nothing - nothing should build make: `myProgram' is up to date.
3. touch address.h - main and employee should build g++ -c main.cpp g++ -c employee.cpp g++ -o myProgram main.o employee.o address.o
4. touch main.cpp - only main.o should build g++ -c main.cpp g++ -o myProgram main.o employee.o address.o
5. touch employee.cpp - only employee.o should build g++ -c employee.cpp g++ -o myProgram main.o employee.o address.o
6. touch address.cpp - only address.o should build g++ -c address.cpp g++ -o myProgram main.o employee.o address.o