Coprolite.com
Google
 
Web Coprolite.com
SignalQ Sites:
NetAdminTools - Coprolite - NoNIC - SpotBridge - NAW
RoboCoop - AreWeDown - SolarPower - SysAdminTools
Xfig - Gold Loaf - GeekPapa - FixGMC - MCJ - FixRambler
Categories:
GNU/Linux | Homebrew designs | Perl | Microcontrollers | Graphics | Z-80 | FreeDOS | Electronics | Odyssey 2 | 8048 | Other/Msc.

Last 30 Days | Last 60 Days | Last 90 Days | All Articles/Links


Categories:
·GNU/Linux
·Homebrew Designs
·Perl
·Microcontrollers
·Graphics
·Z-80
·FreeDOS
·Other/Msc.
·Electronics
·8048
·All Categories
·Other SignalQ Websites




Compiling AS
Topic: 8048   Posted:2004-04-12
Printer Friendly: Print

spacerspacer
AS is available here. We wrote about AS in this article. AS is a macro assembler that works with many different kinds of CPUs. We put a copy of up here. Here is how to compile AS on a GNU/Linux system:

usr-1@wrk-1 usr-1 $ tar -xzf asl-1.41r8.tar.gz
usr-1@wrk-1 usr-1 $ cd asl*
usr-1@wrk-1 asl-1.41r8 $ ls
BENCHES               code3201x.c   code8x30x.c    findhyphen.h
INSTALL               code3201x.h   code8x30x.h    grhyph.c
Makefile              code3202x.c   code90c141.c   grhyph.h
Makefile.def-samples  code3202x.h   code90c141.h   header.res
Makefile.def.tmpl     code3203x.c   code96.c       headids.c
.
.
.
code17c4x.c           code86.c      endian.h       version.h
code17c4x.h           code86.h      equs.h
code29k.c             code87c800.c  fileformat.h
code29k.h             code87c800.h  findhyphen.c
usr-1@wrk-1 asl-1.41r8 $ 

We need to grab the correct Makefile.def, and modify the CFLAGS for our architecture, and set up the paths:

usr-1@wrk-1 asl-1.41r8 $ ls Makefile.def-samples
MakeDef.cad                            Makefile.def-i386-unknown-os2-visualage
MakeDef.dos                            Makefile.def-i386-unknown-win32
MakeDef.dpmi                           Makefile.def-m68k-pcs-munix3
Makefile.def-alpha-dec-osf13.2         Makefile.def-m68k-sun-netbsd1.2
Makefile.def-alpha-dec-osf14.0         Makefile.def-mips-dec-netbsd1.2
Makefile.def-alpha-unknown-linux2.x.x  Makefile.def-mips-dec-ultrix4.3
Makefile.def-hppa-hp-hpux-10.0         Makefile.def-mips-sgi-irix6.2
Makefile.def-hppa-hp-hpux-9.0          Makefile.def-mips64-sgi-irix6.4
Makefile.def-i386-unknown-dpmi         Makefile.def-rs6k-ibm-aix41
Makefile.def-i386-unknown-linux2.x.x   Makefile.def-sparc-sun-solaris2.x
Makefile.def-i386-unknown-msdos        Makefile.def-sparc-sun-sunos4.1.3
Makefile.def-i386-unknown-os2          Makefile.def-vax-dec-ultrix4.1
usr-1@wrk-1 asl-1.41r8 $ 
usr-1@wrk-1 asl-1.41r8 $ cp Makefile.def-samples/*i386-unknown-linux2* 
./Makefile.def
usr-1@wrk-1 asl-1.41r8 $ 
usr-1@wrk-1 asl-1.41r8 $ vi Makefile.def
# -------------------------------------------------------------------------
# choose your compiler (must be ANSI-compliant!) and linker command, plus
# any additionally needed flags
CC = gcc
LD = gcc
CFLAGS = -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer
LDFLAGS =
#            ^^^^^
#            |||||
# adapt this to your target cpu (386/486 or higher)
# -------------------------------------------------------------------------
# directories where binaries, includes, and manpages should go during
# installation
BINDIR = /usr/bin
INCDIR = /usr/include
MANDIR = /usr/man
LIBDIR = /usr/lib/asl
DOCDIR = /usr/doc/asl
# -------------------------------------------------------------------------
# character encoding to use (choose one of them)
CHARSET = CHARSET_ISO8859_1
# CHARSET = CHARSET_ASCII7
# CHARSET = CHARSET_IBM437
usr-1@wrk-1 asl-1.41r8 $ make
gcc -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer  
-DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/local/include/asl\" 
-DLIBDIR=\"/usr/local/lib/asl\" -c rescomp.c
gcc -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer  
-DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/local/include/asl\" 
-DLIBDIR=\"/usr/local/lib/asl\" -c endian.c
gcc -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer  
-DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/local/include/asl\" 
-DLIBDIR=\"/usr/local/lib/asl\" -c strutil.c
gcc -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer  
-DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/local/include/asl\" 
-DLIBDIR=\"/usr/local/lib/asl\" -c bpemu.c
gcc -o rescomp rescomp.o endian.o strutil.o bpemu.o 
./rescomp ioerrs.res ioerrs.msg ioerrs.rsc
./rescomp cmdarg.res cmdarg.msg cmdarg.rsc
./rescomp tools.res tools.msg tools.rsc
./rescomp as.res as.msg as.rsc
gcc -march=pentium3 -mcpu=pentium4 -O
.
.
.
-o p2hex p2hex.o version.o toolutils.o headids.o endian.o bpemu.o hex.o 
strutil.o chunks.o cmdarg.o ioerrs.o nls.o nlmessages.o -lm 
./rescomp p2bin.res p2bin.msg p2bin.rsc
gcc -march=pentium3 -mcpu=pentium4 -O3 -pipe -fomit-frame-pointer  
-DCHARSET_ISO8859_1 -DSTDINCLUDES=\"/usr/local/include/asl\" 
-DLIBDIR=\"/usr/local/lib/asl\" -c p2bin.c
gcc -o p2bin p2bin.o version.o toolutils.o endian.o bpemu.o hex.o 
strutil.o chunks.o cmdarg.o ioerrs.o nls.o nlmessages.o -lm 
usr-1@wrk-1 asl-1.41r8 $

Of course, you will want to customize your CFLAGS specific to your computer. We have a Pentium 4.




Please read our Terms of Use
Microsoft, Windows, Windows XP, Windows 2000, and NT are either trademarks or registered trademarks of Microsoft Corporation. Coprolite.com is not affiliated with Microsoft Corporation. Linux is a registered trademark of Linus Torvalds. All logos and trademarks in this site are property of their respective owner. Copyright 1997-2008 Coprolite.com

Created by:
MCJ
MCJ CMS