[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PVVMud defines for OS og modul
On Sat, 13 Mar 1999, Anders Reggestad wrote:
>
> Meget godt spørsmål. Jeg har etter vært begynt med å legge inn ei include
> file som jeg kaller pvvmud.H helt i starten av alle C filene. Tanke er at
> det er Makefilene /gcc som skal fotelle hvilke modul og hvilke OS en
> kompilerer for. Når vi får opp gnu autoconfig eller hva den heter ønsker
> jeg at den lager make oppsettet slik at vi f.eks på klienten på linux får
> g++ -DLINUX -DCLIENT ...
> Da vil vi i pvvmud.H kunne gjøre en del defines basert på OS og modul.
Vi bør i størst mulig grad unngå å hardkode OS-navn i kildekoden. I
kildekoden bør vi bare se på hvilke ting som:
(tenkt eksempel på lydstøtte)
#ifdef HAVE_MACHINE_SOUNDCARD_H
#include <machine/soundcard.h>
#else
#ifdef HAVE_SYS_AUDIOIO_H
#include <sys/audioio.h>
#endif
#endif
eller
#ifdef HAVE_MMAP
mmap(...)
#else
malloc(...)
while (read(...) > 0)
...
#endif
#ifdef HAVE_MADVISE
madvise(...)
#endif
Så kan vi overlate til autoconf å sette HAVE_MACHINE_SOUNDCARD_H,
HAVE_MMAP osv...
> On Sat, 13 Mar 1999, Jin Egil Aas-Eng wrote:
>
> > Siden det bare er et teknisk spørsmål, sender jeg det ikke til
> > mailinglisten :
> >
> > For f.eks. Visual C++ (Win32 kompilator) bør vi ha en definisjonsfil for å
> > definere #define _LINUX_ eller #define _WIN32_ eller lignende. Skal vi
> > kalle den conf.h, eller skal vi bruke autoconf.h, for når vi senere evt.
> > for automatisk konfigurert kompileringsdetaljer.
I en overgangsperiode må du nok bruke
#ifndef _WIN32_
men unngå for all del en makro for hver UNIX.
Steinar