Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Programming (http://www.chiefdelphi.com/forums/forumdisplay.php?f=51)
-   -   Perl FRC builder in Linux (http://www.chiefdelphi.com/forums/showthread.php?t=31852)

Michael Auchter 18-12-2004 18:49

Perl FRC builder in Linux
 
1 Attachment(s)
I developed a program for building the robot code in Perl. I know that there is already an actual makefile which makes use of "make," but on my laptop, I have several directories full of code, and thought it would be nice to have one centralized utility to build them.

When you execute the program, it will compile all .c files in the current directory.

Installation Instructions:
cp ./frcbuild /usr/bin
chmod 755 /usr/bin/frcbuild

Type "frcbuild" in your code directory to build.

Comments/criticism would be greatly appreciated.

Code:

#!/usr/bin/perl -w

# Builder for MCC18
# FIRST Team 68, Truck Town Thunder

# Coded by: Michael Auchter (auchter.phire.org)
# Questions? Comments? michael.auchter@gmail.com

use strict;
# Variable Declaration.  Pretty self explanatory...
my $MCC  = "/opt/mcc18";
my $MCC18 = "$MCC/bin/mcc18.exe -p=18F8520";
my $LINK  = "$MCC/bin/mplink.exe";
my $WINE  = "/usr/bin/wine";
my $OPT  = "\"$MCC/h\" -D_FRC_BOARD -Ou- -Ot- -Ob- -Op- -Or- -Od- -Opa-";
my $DRIVE = "Z";
my $LIB = "$DRIVE:$MCC/lib/";

# Compilation
while (<*.c>) {                # Case sensitive, change if .C
 print "Compiling: $_\n";
 my $o = $_;
 $o =~ s|\.c$|\.o|i;
 system("$WINE $MCC18 \"$_\" -fo=\"$o\" /i$OPT") unless (/print_f/);
 system("$WINE $MCC18 \"$_\" -fo=\"$o\" /i\"$MCC/h\"") if (/print_f/);
}

# Build
print "Building FrcCode.hex\n";
my $files = "";
$files = "$files $_ " while (<*.o>);
system("$WINE $LINK /l\"$DRIVE:$MCC/lib/\" \"18f8520user.lkr\" $files \"FRC_library.lib\" /m\"FrcCode.map\" /o\"FrcCode.cof\"");

print "Removing *.o\n";
system("rm $_") while (<*.o>);


BrianJennings 05-01-2005 00:54

Re: Perl FRC builder in Linux
 
Does this code work on Windows and Linux?


It sounds very cool to me.


Have you thought about using PAR to compile it to an executable that is non relient on haveing Perl on the system? or adding a GUI with perl TK? If you haven't I could probably help you out, becuae I have done a bit of stuff with both...

phrontist 05-01-2005 02:07

Re: Perl FRC builder in Linux
 
Quote:

Originally Posted by BrianJennings
Does this code work on Windows and Linux?


It sounds very cool to me.


Have you thought about using PAR to compile it to an executable that is non relient on haveing Perl on the system? or adding a GUI with perl TK? If you haven't I could probably help you out, becuae I have done a bit of stuff with both...

You'd need only modify the file paths by the looks of it. Perl is farily inutive, except when it looks like line noise. ;)

Michael Auchter 05-01-2005 16:40

Re: Perl FRC builder in Linux
 
Quote:

Originally Posted by BrianJennings
Does this code work on Windows and Linux?


It sounds very cool to me.


Have you thought about using PAR to compile it to an executable that is non relient on haveing Perl on the system? or adding a GUI with perl TK? If you haven't I could probably help you out, becuae I have done a bit of stuff with both...

Yes, the file paths are all that need to be modified for it to work under Windows. As far as using PAR or a GUI, I had not thought of that, but if you'd like, feel free to modify the code and post it here.

doyler 05-01-2005 18:52

Re: Perl FRC builder in Linux
 
Now this compiles it with using C18?

BrianJennings 07-01-2005 11:46

Re: Perl FRC builder in Linux
 
sounds cool... I might give it a go...


All times are GMT -5. The time now is 02:52.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi