usb serial

hello again this is the makefile:

This Makefile has been simplified as much as possible, by putting all

generic material, independent of this specific directory, into

…/Rules.make. Read that file for details

The usb serial headers

INCLUDEUSBSER := $(shell echo “/usr/src/linux-uname -r/drivers/usb/serial/”)

TOPDIR := $(shell pwd)
#TOPDIR = .
include $(TOPDIR)/Rules.make

CFLAGS += -I$(INCLUDEUSBSER) -O

OBJS = ftdi.o

all: $(OBJS)

ftdi.o: ftdi_sio.o
$(LD) -r $^ -o $@

install:
install -d $(INSTALLDIR)
install -c $(OBJS) $(INSTALLDIR)

clean:
rm -f *.o *~ core

and this is the Rules.make

--makefile--

This file is part of the sample code for the book “Linux Device Drivers”,

second edition. It is meant to be generic and is designed to be recycled

by other drivers. The comments should be clear enough.

It partly comes from Linux Makefile, and needs GNU make. <rubini@linux.it>

TOPDIR is declared by the Makefile including this file.

ifndef TOPDIR
TOPDIR = .
endif

KERNELDIR can be speficied on the command line or environment

ifndef KERNELDIR
KERNELDIR := $(shell echo “/lib/modules/uname -r/build”)
endif

The headers are taken from the kernel

INCLUDEDIR = $(KERNELDIR)/include

We need the configuration file, for CONFIG_SMP and possibly other stuff

(especiall for RISC platforms, where CFLAGS depends on the exact

processor being used).

ifeq ($(KERNELDIR)/.config,$(wildcard $(KERNELDIR))/.config)
include $(KERNELDIR)/.config
else
MESSAGE := $(shell echo “WARNING: no .config file in $(KERNELDIR)”)
endif

ARCH can be speficed on the comdline or env. too, and defaults to this arch

Unfortunately, we can’t easily extract if from kernel configuration

(well, we could look athe asm- symlink… don’t know if worth the effort)

ifndef ARCH
ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/
-e s/arm.*/arm/ -e s/sa110/arm/)
endif

This is useful if cross-compiling. Taken from kernel Makefile (CC changed)

AS =$(CROSS_COMPILE)as
LD =$(CROSS_COMPILE)ld
CC =$(CROSS_COMPILE)gcc
CPP =$(CC) -E
AR =$(CROSS_COMPILE)ar
NM =$(CROSS_COMPILE)nm
STRIP =$(CROSS_COMPILE)strip
OBJCOPY =$(CROSS_COMPILE)objcopy
OBJDUMP =$(CROSS_COMPILE)objdump

The platform-specific Makefiles include portability nightmares.

Some platforms, though, don’t have one, so check for existence first

ARCHMAKEFILE = $(TOPDIR)/Makefile.$(ARCH)
ifeq ($(ARCHMAKEFILE),$(wildcard $(ARCHMAKEFILE)))
include $(ARCHMAKEFILE)
endif

USBDI=/linux

CFLAGS: all assignments to CFLAGS are inclremental, so you can specify

the initial flags on the command line or environment, if needed.

CFLAGS +=  -Wall -D__KERNEL__ -DMODULE -I$(INCLUDEDIR)

ifdef CONFIG_SMP
CFLAGS += -D__SMP__ -DSMP
endif

Prepend modversions.h if we’re running with versioning.

ifdef CONFIG_MODVERSIONS
CFLAGS += -DMODVERSIONS -include $(KERNELDIR)/include/linux/modversions.h
endif

#Install dir
VERSIONFILE = $(INCLUDEDIR)/linux/version.h
VERSION = $(shell awk -F" ‘/REL/ {print $$2}’ $(VERSIONFILE))
INSTALLDIR = /lib/modules/$(VERSION)/misc

I have to change somethings inside this two file?

Regards

Luca