[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